2012-08-27 122 views
1
附近的語法不正確

我收到以下錯誤。執行SQL Server存儲過程 -

消息102,級別15,狀態1,行5
附近有語法錯誤@ExcludedDivisionBracketPartIds'。

我不知道爲什麼會發生這種情況。如果我直接執行存儲過程,它工作正常。

exec sp_executesql N'EXEC [TEST].[DeleteDivisionBracketPartsTEST] 
@DivisionBracketId 
@ExcludedDivisionBracketPartIds 
@MemberId', 
N'@DivisionBracketId int, 
@ExcludedDivisionBracketPartIds nvarchar(max), 
@MemberId int', 
@DivisionBracketId=145, 
@ExcludedDivisionBracketPartIds=N'473', 
@MemberId=53 

ALTER PROCEDURE [TEST].[DeleteDivisionBracketPartsTEST] 
    @DivisionBracketId INT, 
    @ExcludedDivisionBracketPartIds NVARCHAR(MAX), 
    @MemberId INT 
AS 
BEGIN 
    SET NOCOUNT ON; 
+1

我不知道,但是,是不是你在「@DivisionBracketId」之後的第二行錯過了逗號..? – heretolearn

+0

你是對的,愚蠢的錯誤。讓它成爲答案並對它進行標記。 –

+0

您需要爲變量定義類型。 –

回答

3

你錯過了逗號@DivisionBracketId和@ExcludedDivisionBracketPartIds後。

它應該是這樣的:

exec sp_executesql N'EXEC [TEST].[DeleteDivisionBracketPartsTEST] 
@DivisionBracketId, 
@ExcludedDivisionBracketPartIds, 
@MemberId', 
N'@DivisionBracketId int, 
@ExcludedDivisionBracketPartIds nvarchar(max), 
@MemberId int', 
@DivisionBracketId=145, 
@ExcludedDivisionBracketPartIds=N'473', 
@MemberId=53 

ALTER PROCEDURE [TEST].[DeleteDivisionBracketPartsTEST] 
    @DivisionBracketId INT, 
    @ExcludedDivisionBracketPartIds NVARCHAR(MAX), 
    @MemberId INT 
AS 
BEGIN 
    SET NOCOUNT ON;