我不斷收到以下存儲過程的錯誤。我已經使用EXEC正常工作,然後我切換到sp_executesql,我一直無法執行它。我不斷收到以下錯誤:'@numberOfItems'附近的語法不正確。使用sp_executesql的DynamicSQL錯誤
ALTER PROCEDURE dbo.FetchResourcesToProcess
(
@tableName nvarchar(MAX),
@numberOfItems int
)
AS
BEGIN
DECLARE @SQL nvarchar(MAX);
SET NOCOUNT ON;
SET @SQL = N'Select TOP @numberOfItems * from ' + @tableName + N' where Active = 1 AND BeingProcessed = 0'
EXEC sp_executesql @SQL, N'@numberOfItems int', @numberOfItems
END
表名是一個字符串,結構如下:「[TABLENAME]」。
感謝
做一個選擇@SQL。獲取結果並將其複製並粘貼到SSMS中,看看是否可以執行該操作。你會得到更好的錯誤消息。 – JeffO 2012-07-17 23:11:59
您需要在@numberOfItems附近放置圓括號:'N'Select TOP(@numberOfItems)* from' – 2012-07-17 23:20:27