缥缈止盈
这是Bryan在2008年及以后的查询的更新版本。它使用INFORMATION_SCHEMA.COLUMNS,为表架构和表名称添加变量。列数据类型已添加到输出中。查找特定数据类型的列时,包含列数据类型会有所帮助。我没有添加列宽或其他任何内容。对于输出,使用RAISERROR ... WITH NOWAIT,因此文本将立即显示,而不是像PRINT那样一次全部显示(大部分)。SET NOCOUNT ON;DECLARE @ColumnName sysname,@DataType nvarchar(128),@cmd nvarchar(max),@TableSchema nvarchar(128) = 'dbo',@TableName sysname = 'TableName';DECLARE getinfo CURSOR FORSELECT c.COLUMN_NAME ,c.DATA_TYPEFROM INFORMATION_SCHEMA.COLUMNS AS cWHERE c.TABLE_SCHEMA = @TableSchema AND c.TABLE_NAME = @TableName;OPEN getinfo;FETCH NEXT FROM getinfo INTO @ColumnName, @DataType;WHILE @@FETCH_STATUS = 0BEGIN SET @cmd = N'IF NOT EXISTS (SELECT * FROM ' + @TableSchema + N'.' + @TableName + N' WHERE [' + @ColumnName + N'] IS NOT NULL) RAISERROR(''' + @ColumnName + N' (' + @DataType + N')'', 0, 0) WITH NOWAIT;'; EXECUTE (@cmd); FETCH NEXT FROM getinfo INTO @ColumnName, @DataType;END;CLOSE getinfo;DEALLOCATE getinfo;