Мне необходимо в процессе выполнения одного из триггеров создавать таблицу, имя которой читается из другой таблицы (то есть заранее, при создании скрипта триггера имя таблицы не известно), структура столбцов известна заранее, логика моих действий такова:
1. Определяется имя таблицы, которую необходимо создать (переменная @TabName): (этот участок скрипта работает как надо)
- Код: Выделить всё
declare @TabName nchar
--определение имени добавляемой таблицы
select @TabName = [Ячейка с именем] FROM INSERTED
2. Определяется - есть ли таблица с именем @TabName, если таблицы нет (is Null) - создается
- Код: Выделить всё
--определение есть ли уже такая таблица
if object_id (@TabName) is Null
begin
CREATE TABLE @TabName (
[Идентификатор] [int] IDENTITY (1, 1) NOT NULL ,
[Идентификатор по карте документа] [int] NULL ,
[Содержимое в формате XML] [ntext] COLLATE Cyrillic_General_CI_AS NULL ,
[Содержимое] [nvarchar] (50) COLLATE Cyrillic_General_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Приведенный код не работает, ругается на CREATE TABLE @TabName
Вся проблема в том, что не соображу - возможно ли вместо явного имени таблицы подставлять переменную:
- Код: Выделить всё
CREATE TABLE @TabName
и если да, то как?
Очень нужно создавать именно таблицу с именем, хранящимся в переменной