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
的字符串文字对于想要提取到局部变量来说似乎是完全合理的