Следуя идее неуместности и предполагая, что вы используете SQL Server, вы можете сделать что-то вроде этого:
DECLARE
@TableName VARCHAR(MAX)
,@ColumnName VARCHAR(MAX)
,@SQLQuery VARCHAR(MAX)
,@FirstFlag BIT
SET @TableName = 'TEST'
SELECT
COL.COLUMN_NAME
INTO ##CUSTOM_COL
FROM INFORMATION_SCHEMA.COLUMNS COL
WHERE 1 = 1
AND COLUMN_NAME LIKE 'CUSTOM__'
AND TABLE_NAME = @TableName
DECLARE CUR_CUSTOM_COL CURSOR FOR
SELECT * FROM ##CUSTOM_COL
OPEN CUR_CUSTOM_COL
FETCH NEXT FROM CUR_CUSTOM_COL INTO @ColumnName
SET @FirstFlag = 1
SET @SQLQuery = 'SELECT *'
WHILE @@FETCH_STATUS = 0
BEGIN
IF @FirstFlag = 0
BEGIN
SET @SQLQuery = @SQLQuery + ', '
END
SET @SQLQuery = @SQLQuery + @ColumnName
SET @FirstFlag = 0
FETCH NEXT FROM CUR_CUSTOM_COL INTO @ColumnName
END
CLOSE CUR_CUSTOM_COL
DEALLOCATE CUR_CUSTOM_COL
SET @SQLQuery = @SQLQuery + ' FROM ' + @TableName
EXEC(@SQLQuery)
Я сохранил свое рабочее пространство в этой скрипке .К сожалению, это не работает там как намерение, но это должно произойти в вашем клиенте SQL (или я допустил небольшую ошибку при наборе текста).С некоторыми небольшими изменениями вы можете отображать не только пользовательские столбцы из 1 указанной таблицы, но и из всех таблиц.Кроме того, помимо его выбора, вы можете вставить выходные данные из пользовательских столбцов во временных таблицах.