我正在运行 SQL Server 2008 并且必须加载没有计算列的表,即类似于
从 MY_TABLE 中选择(所有没有计算的列)
这样做有可能吗?如果我需要从加载中取消选择计算列,还有什么其他解决方法?
我正在运行 SQL Server 2008 并且必须加载没有计算列的表,即类似于
从 MY_TABLE 中选择(所有没有计算的列)
这样做有可能吗?如果我需要从加载中取消选择计算列,还有什么其他解决方法?
看看使用syscolumns和动态 sql 中的 iscomputed 列怎么样?
iscomputed (int)
Flag indicating whether the column is computed:
0 = Noncomputed.
1 = Computed.
就像是
CREATE TABLE TADA(
A INT,
B INT,
C AS (A+B)
);
INSERT INTO TADA (A,B) VALUES (1,2);
DECLARE @TableName VARCHAR(500) = 'TADA'
DECLARE @ColumnNames VARCHAR(MAX)
SELECT @ColumnNames = COALESCE(@ColumnNames + ',','') + col.name
FROM sysobjects obj
INNER JOIN syscolumns col ON obj.id = col.id
WHERE obj.name = @TableName
AND col.iscomputed = 0
EXEC ('SELECT ' + @ColumnNames + ' FROM ' + @TableName)