0
我正在通過幾列數據庫表。我試圖用小日期時間數據類型並排查看列進行比較。我可以只顯示SQL Server中特定數據類型表的列嗎?
那麼有沒有一種方法/一個查詢,我可以訪問一個表中具有相同數據類型顯示在一起的列?
上午SQL Server上工作2008
我正在通過幾列數據庫表。我試圖用小日期時間數據類型並排查看列進行比較。我可以只顯示SQL Server中特定數據類型表的列嗎?
那麼有沒有一種方法/一個查詢,我可以訪問一個表中具有相同數據類型顯示在一起的列?
上午SQL Server上工作2008
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'
檢查:
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 [email protected]
AND [email protected]
AND [email protected]
FOR XML PATH('')
),1,1,''
)
);
DECLARE @cmd VARCHAR(MAX)=
'SELECT ' + @cols + ' FROM ' + @sch + '.' + @tbl;
EXEC(@cmd);
不確定你在這裏問什麼。你想只從表中選擇具有特定數據類型的列嗎?您可以查詢sys.columns以確定數據類型。 –