2014-01-21 26 views
11

如何解決此錯誤?文本,ntext和圖像數據類型對於局部變量無效

The text, ntext, and image data types are invalid for local variables. 

我PROC是:

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 

我不知道是什麼錯誤或如何解決它。 請幫我...

+0

[NTEXT,文字和圖片](http://technet.microsoft.com/en- us/library/ms187993(v = sql.90).aspx):「將在未來版本的Microsoft SQL Server中刪除ntext,text和image數據類型,避免在新的開發工作中使用這些數據類型,並計劃修改當前使用它們的應用程序「 –

回答

19

它告訴你,你不能使用NTEXT作爲局部變量的數據類型。

@Body ntext OUTPUT更改爲@Body NVARCHAR(MAX) OUTPUT將使其工作。

+0

和圖像使用varbinary(max) – donstack

4

我知道這是舊的,但值得一提。如果您的表需要這些數據類型,投你的變數,當你做選擇或更新/插入...

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

Update some table set somevalue=cast(@somevariable as ntext) where... 
相關問題