У меня возникают проблемы с динамическим созданием таблицы и ее вставкой. Я пробовал это несколько способов и не могу добиться желаемого результата. Ниже приводится упрощенная версия того, что я пытаюсь сделать. Обратите внимание, что это только одна попытка - я тоже пробовал другие (например, INSERT INTO [table] EXEC(@exe)
).TSQL - динамическая таблица создания и вставка
Каждый раз, когда я пытаюсь ниже, я получаю сообщение
Команда (ы) успешно завершена
, но ни одна таблица не была даже создана.
Я использую SQL Server 2008 R2.
DECLARE @sqlText nvarchar
SET @sqlText =
N'
IF OBJECT_ID(''[BudgetProcedures].dbo.UnitOccupancy'', ''U'') IS NOT NULL
DROP TABLE [BudgetProcedures].dbo.UnitOccupancy;
CREATE TABLE [BudgetProcedures].dbo.UnitOccupancy (Property varchar(15)
,Unit varchar(15)
,YearLength varchar(15)
,Lease varchar(15));
INSERT INTO [BudgetProcedures].[dbo].[UnitOccupancy] (Property, Unit, YearLength, Lease)
(SELECT ''ExProp''
,''ExUnit''
,''ExYrlen''
,''ExLease''
)
'
EXEC(@sqlText)
Не знаете, почему вам нужно использовать динамический sql здесь, но проблема в том, что вы не указали длину для своей переменной.Всякий раз, когда вы делаете динамический sql, вы должны ВСЕГДА выбрать его перед выполнением, чтобы вы могли видеть, что вы на самом деле выполняете. –