Я уже запускал этот тип кода несколько раз, но в другой среде в другой организации и не совсем в тех же версиях на SQL Server.Приведенный ниже пример кода упрощен, но работает как пример моей проблемы.
В этом примере я пытаюсь сделать цикл в течение нескольких лет (переменная "ar") и создать новую таблицуза каждый год в другой базе данных, чем исходная таблица сохраняется.Оригинальная таблица включает в себя все годы.Переменная "ar" в исходной таблице представляет собой целое число.
Мой код выглядит следующим образом:
declare @Ar int = 2007
declare @ArVC varchar(4)=''
declare @CreateTable varchar(MAX)=''
declare @DB varchar(MAX)='MIRK3utv'
while @Ar <= 2015
begin
set @ArVC = cast(@Ar as varchar)
set @CreateTable = '
select *
into ' + @DB + 'dbo.Tab_' + @ArVC + '
from DBorg.dbo.OrgTab
where ar = ' + @ArVC
exec @CreateTable
set @Ar = @Ar + 1
end
Это дает мне сообщение об ошибке:
Msg 203, Уровень 16, Состояние 2, Строка 34 Имя 'выберите * в MIRK3utv.dbo.Tab_2007 из DBorg.dbo.OrgTab, где ar = 2007' не является допустимым идентификатором.
Чтоя здесь скучаю?Я искал в сети и на этом форуме ответ, но, похоже, я не могу найти решение, которое работает для меня в этом случае.