2017-03-06 57 views
0

我在準備一個數據遷移腳本,其中需要將先前創建的序列更改爲新值。SQL Server - 以編程方式更改序列

這是我嘗試到目前爲止:

DECLARE @Curr_Sampling_Request_ID INT ; 

SELECT @Curr_Sampling_Request_ID = MAX (Sampling_Request_ID) 
    FROM [MyDB].[ABC].[T_DATA_Sampling_Requests] ; 

DECLARE @Update_Sequence NVARCHAR(512) ; 

SET @Update_Sequence = 
     N'ALTER SEQUENCE [S_DATA_Sampling_Requests] RESTART WITH ' + 
     CAST(@Curr_Sampling_Request_ID AS VARCHAR) ; 

print('Attempting: ' + @Update_Sequence) ; 

EXEC @Update_Sequence ; 

在執行時我得到以下錯誤信息(打印記錄還示出):

嘗試:ALTER SEQUENCE [S_DATA_Sampling_Requests] RESTART WITH 2848805 Msg 203,Level 16,State 2,Line 10 名稱'ALTER SEQUENCE [S_DATA_Sampling_Requests] RESTART WITH 2848805'不是有效的標識符。

[注:也試過不使用臨時字符串不使用臨時字符串,但收到同樣的錯誤]

任何幫助將得到高度讚賞。

回答

1

你用你的字符串查詢就像它是一個普通的存儲過程。 你應該做的:

EXECUTE sp_executesql @Update_Sequence 
+0

BINGO !!!感謝您的及時答覆! – FDavidov