Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tsql text、ntext和image数据类型对于局部变量无效_Tsql_Sql Server 2005 - Fatal编程技术网

Tsql text、ntext和image数据类型对于局部变量无效

Tsql text、ntext和image数据类型对于局部变量无效,tsql,sql-server-2005,Tsql,Sql Server 2005,如何修复此错误 The text, ntext, and image data types are invalid for local variables. 我的程序是: set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[GetJobInfo] ( @jobId int, @subject varchar(50) OUTPUT, @Body ntext OUTPUT,

如何修复此错误

The text, ntext, and image data types are invalid for local variables.
我的程序是:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GetJobInfo]
    (
    @jobId int,
    @subject varchar(50) OUTPUT,
    @Body ntext OUTPUT,
    @prepared_email_id int OUTPUT
    )
AS
BEGIN
    SET NOCOUNT ON
    SELECT TOP 1 @prepared_email_id = p.[PreparedEmailID],
        @subject = p.[Subject],
        @Body = p.[Body]
        FROM [PreparedEmails] p INNER JOIN
        [Jobs] j ON p.[PreparedEmailID] =
        j.[PreparedEmailID]
        WHERE j.[JobID] = @jobId
    RETURN
END
我不知道错误是什么,也不知道如何修复它。
请帮帮我…

它告诉您,不允许将NTEXT用作局部变量的数据类型


@Body-ntext-OUTPUT
更改为
@Body-NVARCHAR(MAX)OUTPUT
将使其工作。

我知道这很旧,但值得一提。如果表需要这些数据类型,请在执行选择或更新/插入时强制转换变量

SELECT cast(@somevariable as ntext) from...

Update some table set somevalue=cast(@somevariable as ntext) where...

:“在未来版本的Microsoft SQL Server中,将删除ntext、text和image数据类型。请避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序”。对于image use varbinary(max),为什么存在此限制?类型为
text
的字符串文字对于想要提取到局部变量来说似乎是完全合理的