我想使用下面的代碼重命名SQL Server 2008 R2中的表;在SQL中重命名錶時使用表名中的變量
declare @date varchar(8)
set @date = convert(varchar(8), getdate(), 112)
exec sp_rename 'LM_SM_Billing_and_Send_Data', '[email protected]'
我的意圖是重命名附加當前日期的表。
select convert(varchar(8), getdate(), 112)
回報20141219
但是當我運行的重新命名它的名稱表;
[email protected]
,而不是插入日期
我想知道是否有可能把它重新命名爲;
LM_SM_Billing_and_Send_Data_20141219
通過使用表名中的變量。
我一直在使用googling很多東西似乎指向使用動態SQL,但我從來沒有使用過它,不知道什麼語法會得到我期待的結果。
你就不能像'設置@name = 'LM_SM_Billing_and_Send_Data_' + @ date'然後'EXEC sp_rename 'LM_SM_Billing_and_Send_Data',@ name'? –
SQL不會執行字符串插值。您似乎認爲它會查看「LM_SM_Billing_and_Send_Data_ @ date''並查看」@ date「並對其執行操作。不。 –