Я пытаюсь переименовать таблицу в 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
с использованием этой переменной в имени таблицы.
Я немного поработал в поисковых системах, и все, кажется, указывает на использование динамического 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' и что-то с этим сделаю. Неа. –