ventaja una son que propone los condicional condicion con columnas columna campos campo calculados calculado calculada agregar sql sql-server tsql

una - Obtener lista de columnas calculadas en tabla de base de datos(SQL Server)



sql server columna calculada condicional (3)

Para SQL Server 2000, la sintaxis es:

SELECT * FROM sys.columns WHERE is_computed = 1

Y el poco más útil:

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

salida de muestra:

TableName ColumnName ===================== ========== BrinksShipmentDetails Total AdjustmentDetails Total SoftCountDropDetails Total CloserDetails Total OpenerDetails Total TransferDetails Total (6 row(s) affected)

¿Alguno de ustedes sabría cómo obtener la lista de columnas calculadas en una tabla de base de datos de SQL Server?

Encontré que sys.sp_help tablename devuelve esta información, pero solo en el conjunto de resultados de secord.

Estoy tratando de averiguar si hay una mejor manera de hacerlo. Algo que solo devuelve un solo conjunto de resultados.

Cualquier ayuda es muy apreciada, ya que está muy mal documentada.

Gracias, Giammarco


Si desea utilizar las vistas INFORMATION_SCHEMA , intente

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


Por supuesto, verifique la vista del catálogo del sistema sys.columns :

SELECT * FROM sys.columns WHERE is_computed = 1

Esto le da todas las columnas calculadas en esta base de datos.

Si desea que sean solo para una tabla, use esta consulta:

SELECT * FROM sys.columns WHERE is_computed = 1 AND object_id = OBJECT_ID(''YourTableName'')

Esto funciona en SQL Server 2005 y posteriores.

ACTUALIZACIÓN: incluso hay una vista del catálogo del sistema sys.computed_columns que también contiene la definición (expresión) de la columna calculada, en caso de que sea necesario algún tiempo :-)

SELECT * FROM sys.computed_columns WHERE object_id = OBJECT_ID(''YourTableName'')

Bagazo