您是否會知道如何獲取SQL Server數據庫表中計算列的列表?獲取數據庫表中計算列的列表(SQL Server)
我發現sys.sp_help表名確實返回這個信息,但只在secord結果集中。
我想知道是否有更好的方法來做到這一點。只返回單個結果集的東西。
任何幫助非常感謝,因爲這是非常嚴重的記錄。
謝謝 Giammarco
您是否會知道如何獲取SQL Server數據庫表中計算列的列表?獲取數據庫表中計算列的列表(SQL Server)
我發現sys.sp_help表名確實返回這個信息,但只在secord結果集中。
我想知道是否有更好的方法來做到這一點。只返回單個結果集的東西。
任何幫助非常感謝,因爲這是非常嚴重的記錄。
謝謝 Giammarco
當然 - 檢查sys.columns
系統目錄視圖:
SELECT * FROM sys.columns
WHERE is_computed = 1
這讓你在這個數據庫中所有計算列。
如果你想那些只是一個單一的表,使用此查詢:
SELECT * FROM sys.columns
WHERE is_computed = 1
AND object_id = OBJECT_ID('YourTableName')
這工作SQL Server 2005和起來的。
UPDATE:甚至還有其中還包含計算列的定義(表達式)一個sys.computed_columns
系統目錄視圖 - 以防可能需要的一段時間:-)
SELECT * FROM sys.computed_columns
WHERE object_id = OBJECT_ID('YourTableName')
馬克
情況下對於SQL Server 2000的語法是:
SELECT * FROM sys.columns
WHERE is_computed = 1
而且稍微有用:
SELECT
sysobjects.name AS TableName,
syscolumns.name AS ColumnName
FROM syscolumns
INNER JOIN sysobjects
ON syscolumns.id = sysobjects.id
AND sysobjects.xtype = 'U' --User Tables
WHERE syscolumns.iscomputed = 1
輸出樣本:
TableName ColumnName
===================== ==========
BrinksShipmentDetails Total
AdjustmentDetails Total
SoftCountDropDetails Total
CloserDetails Total
OpenerDetails Total
TransferDetails Total
(6 row(s) affected)
如果你想使用INFORMATION_SCHEMA
的意見,然後再嘗試
SELECT
COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA+'.'+TABLE_NAME),COLUMN_NAME,'IsComputed')
AS IS_COMPUTED,
*
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='<Insert Your Table Name Here>'
這也是MS SQL Azure中工作正常。謝謝。 – 2015-12-04 19:24:24