2016-07-15 114 views
0

我正在通過幾列數據庫表。我試圖用小日期時間數據類型並排查看列進行比較。我可以只顯示SQL Server中特定數據類型表的列嗎?

那麼有沒有一種方法/一個查詢,我可以訪問一個表中具有相同數據類型顯示在一起的列?

上午SQL Server上工作2008

+2

不確定你在這裏問什麼。你想只從表中選擇具有特定數據類型的列嗎?您可以查詢sys.columns以確定數據類型。 –

回答

0
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' 
0

檢查:

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); 
相關問題