У меня проблема с созданием повторяющейся таблицы.У меня есть куча взглядов, которые нужно записать в таблицы.
Мой подход заключается в том, что для каждого представления должна быть создана таблица, и поэтому я понял это с помощью динамического SQL.Так что мне не нужно прикасаться к работе каждый раз, когда я добавляю представление.
Моя проблема в том, что код работает нормально, пока я сам выполняю его в SSSM.Как только я помещаю это в работу, и это выполнено по расписанию или самостоятельно, это терпит неудачу.Если я заменю динамический SQL кодом, который он производит, задание также завершится неудачно.Я даже поместил код в хранимую процедуру и просто выполнил его из задания, и он дал тот же результат.
В сообщении об ошибке говорится, что он не может преобразовать тип nvarchar в тип datetime.Я проверил каждое представление и запустил код для каждого представления / таблицы по отдельности, а также сразу, и ошибки не было.
Кто-нибудь знает, что здесь не так?
Вот код динамического SQL, который я использую:
DECLARE @SQL varchar(max);
SELECT @SQL = COALESCE(@SQL + ' ', '') + 'IF OBJECT_ID(''' + REPLACE(name, 'qry_', 'tbl_') + ''', ''U'') IS NOT NULL DROP TABLE ' + QUOTENAME(REPLACE(name, 'qry_', 'tbl_')) + '; SELECT * INTO ' + QUOTENAME(REPLACE(name, 'qry_', 'tbl_')) + ' FROM ' + QUOTENAME(name) + ';'
FROM sys.views
WHERE LEFT(name, 4) = 'qry_'
EXEC (@sql);