2013-12-23 116 views
0

我寫了一個更新的存儲過程,這裏是代碼不正確的語法

CREATE PROCEDURE writer_update_art 
    @articleid int 
    @title nvarchar(50) , 
    @subject text , 
    @tag nvarchar(25), 
AS 
    update articles 
    set (title = @title, subject = @subject, tag = @tag) 
    where articleid = @articleid 

    RETURN 

但出現錯誤:「@標題」
不正確的語法

附近有語法錯誤附近「(」

+1

'ntext','text'和'image'數據類型將在未來版本的SQL Server中刪除。避免在新的開發工作中使用這些數據類型,並計劃修改當前正在使用它們的應用程序。改爲使用'nvarchar(max)','varchar(max)'和'varbinary(max)'。 [詳細在這裏](http://msdn.microsoft.com/en-us/library/ms187993.aspx) –

回答

3

你不需要爲SET語法括號和你有放錯位置逗號:

CREATE PROCEDURE writer_update_art 
    @articleid int, 
    @title nvarchar(50), 
    @subject text, 
    @tag nvarchar(25) 
AS 
    update articles set title = @title , [email protected] , [email protected] 
    where [email protected] 
RETURN 
+0

當我刪除括號附近@title出現錯誤的語法 –

+0

實際上,我把括號,以解決這個問題! !但它不起作用 –

+0

我後來也注意到了逗號。逗號,你的問題的來源 – Szymon

2

不要求內部括號或PARAM列表的末尾(和逗號在名單第一個參數後需要)額外的逗號:

CREATE PROCEDURE writer_update_art 
(
    @articleid int, 
    @title nvarchar(50) , 
    @subject text , 
    @tag nvarchar(25) 
) 
AS 
    update articles 
    set title = @title, 
     subject = @subject, 
     tag = @tag 
    where articleid = @articleid 
RETURN 
+0

'@articleid int' – Szymon

+0

沒有工作後仍然有一個逗號丟失! ...和一個新的錯誤說:'必須聲明縮放器變量「@title」。 ! –

+0

哇比! @米奇小麥..它工作了!!!!!很奇怪,我仍然不知道問題出在哪裏! –