Создайте таблицу переменных и получите @COLUMN_NAME - PullRequest
0 голосов
/ 28 мая 2019

Я хотел бы получить @COLUMN_NAME таблицы как переменную. Я использую SQL Server Management Studio 2016.

declare @tmp TABLE ([TABLE_CATALOG] varchar(128), [TABLE_SCHEMA] varchar(128), [TABLE_NAME] varchar(128), [COLUMN_NAME] varchar(128), [ORDINAL_POSITION] varchar(128),[COLUMN_DEFAULT] varchar(128), 
 [IS_NULLABLE] varchar(128), [DATA_TYPE] varchar(128), [CHARACTER_MAXIMUM_LENGTH] varchar(128), [CHARACTER_OCTET_LENGTH] varchar(128), [NUMERIC_PRECISION] varchar(128), [NUMERIC_PRECISION_RADIX] varchar(128), [NUMERIC_SCALE] varchar(128), 
 [DATETIME_PRECISION] varchar(128), [CARACTER_SET_CATALOG] varchar(128), [CARACTER_SET_SCHEMA] varchar(128), [CARACTER_SET_NAME] varchar(128), [COLLATION_CATALOG] varchar(128), 
 [COLLATION_SCHEMA] varchar(128), [COLLATION_NAME] varchar(128), [DOMAIN_CATALOG] varchar(128), [DOMAIN_SCHEMA] varchar(128), [DOMAIN_NAME] varchar(128) )



INSERT INTO  @tmp 
EXEC sp_executesql (' SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'maTable' ')

DECLARE @COLUMN_NAME varchar(128)
SET @COLUMN_NAME =(SELECT COLUMN_NAME FROM @tmp )

Вот ошибка, которую я получаю ==>

Сообщение 102, уровень 15, состояние 1, строка 9 Неверный синтаксис рядом с таблицей maTable.

Даже если я попробовал тот же синтаксис ранее в другом коде. У кого-нибудь есть идея? Спасибо

1 Ответ

1 голос
/ 28 мая 2019

Вам не нужно писать

EXEC sp_executesql (' SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'maTable' ')`

вы можете написать

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'maTable'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...