Можно ли проверить столбец перед его выделением в операторе выбора?
Мне может быть сложно объяснить, мне действительно пришлось учить себя динамическому SQL за последние 4 месяца.Я использую динамически генерируемый параметр (@TableName
) для хранения отдельных таблиц в цикле (извиняюсь за неопределенность, но детали не имеют значения).
Затем я хочу иметь возможность условно выбирать столбец из таблицы (я не буду знать, имеет ли каждая таблица определенные столбцы).Я выяснил, как проверить столбец вне оператора select ...
SET @SQLQuery2 = 'Select @OPFolderIDColumnCheck = Column_Name From INFORMATION_SCHEMA.COLUMNS Where Table_Name = @TABLENAME And Column_Name = ''OP__FolderID'''
SET @ParameterDefinition2 = N'@TABLENAME VARCHAR(100), @OPFolderIDColumnCheck VARCHAR(100) OUTPUT'
EXECUTE SP_EXECUTESQL @SQLQuery2, @ParameterDefinition2, @TABLENAME, @OPFolderIDColumnCheck OUTPUT
IF @OPFolderIDColumnCheck IS NULL
BEGIN
SET @OP__FOLDERID = NULL
END
ELSE
IF @OPFolderIDColumnCheck IS NOT NULL
BEGIN
...etc
, но id хотел бы иметь возможность сделать это внутри оператора select.Есть ли способ проверить и проверить, существует ли OP__FOLDERID
в таблице?
Я хотел бы иметь возможность сделать что-то вроде этого:
SELECT IF 'OP__FOLDERID' EXISTS IN [TABLE] THEN 'OP__FOLDERID' FROM [TABLE]
Спасибо за любую помощь или направлениеВы можете предложить.