我有几个表,总是有4列,还有不确定数量的列,这些列是用随机名称自动生成的。假设“ SELECT * EXCEPT xyzcol”不存在,那么仅检索自动生成的列的最简单方法是什么?
答案 0 :(得分:1)
由于您不知道列名,因此应该保持动态。
DECLARE @SQL VARCHAR(MAX)='';
SELECT @SQL = @SQL+QUOTENAME(COLUMN_NAME)+',' FROM (
SELECT COLUMN_NAME,ORDINAL_POSITION FROM
INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME ='ADDRESS'
AND ORDINAL_POSITION>4 --SKIPPING FIXED 4 COLUMNS HERE
)A
ORDER BY ORDINAL_POSITION
SELECT @SQL = 'SELECT '+LEFT(@SQL,LEN(@SQL)-1)+ ' FROM [ADDRESS]'
EXEC(@SQL)
我将始终为创建INSERT
脚本提供一个动态脚本,以便在支持日内快速插入。