我正在浏览包含多个列的数据库表。我试图并排查看具有smalldatetime数据类型的列,以便进行比较。
那么,有没有一种方法/查询可以访问同时显示相同数据类型的表中的列?
我正在使用SQL Server 2008。
发布于 2016-07-16 00:38:18
SELECT
t.name,
o.name AS TableName,
c.*
FROM
sys.columns c
JOIN
sys.types t ON t.user_type_id = c.user_type_id
JOIN
sys.objects o ON o.object_id = c.object_id
WHERE
t.name='smalldatetime' 发布于 2016-07-16 00:41:53
请检查以下内容:
SELECT * FROM INFORMATION_SCHEMA.COLUMNS您不能直接使用它,但您可以从那里构建动态SQL:
DECLARE @sch VARCHAR(100)='dbo'; --or other schema
DECLARE @tbl VARCHAR(100)='YourTableName';
DECLARE @tp VARCHAR(100)='INT' --or other type
DECLARE @cols VARCHAR(MAX)=
(
STUFF(
(
SELECT ',' + COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA=@sch
AND TABLE_NAME=@tbl
AND DATA_TYPE=@tp
FOR XML PATH('')
),1,1,''
)
);
DECLARE @cmd VARCHAR(MAX)=
'SELECT ' + @cols + ' FROM ' + @sch + '.' + @tbl;
EXEC(@cmd);https://stackoverflow.com/questions/38401007
复制相似问题