Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como obter a definição de uma coluna computada no SQL Server usando T-SQL


No SQL Server, você pode usar o T-SQL para obter a definição de uma coluna computada consultando o sys.computed_columns visualização do catálogo do sistema.


Exemplo 1 – Retornar uma coluna computada


Aqui está um exemplo que eu executei no meu ambiente de teste. Nesse caso, reduzi os resultados a apenas uma coluna computada.
SELECT definition
FROM sys.computed_columns
WHERE name = 'TotalValue';

Resultado:
+----------------------+
| definition           |
|----------------------|
| ([Quantity]*[Price]) |
+----------------------+

Caso você tenha várias colunas computadas com o mesmo nome, você também pode adicionar o nome da tabela ao WHERE cláusula:
SELECT definition
FROM sys.computed_columns
WHERE name = 'TotalValue'
AND OBJECT_NAME(object_id) = 'Products';

Exemplo 2 – Retornar todas as colunas computadas


Neste exemplo eu retorno todas as colunas computadas, junto com sua definição.
SELECT 
  OBJECT_NAME(object_id) AS [Table],
  name AS [Computed Column],
  definition
FROM sys.computed_columns;

Resultado:
+----------+-------------------+--------------------------------------+
| Table    | Computed Column   | definition                           |
|----------+-------------------+--------------------------------------|
| Person   | FullName          | (concat([FirstName],' ',[LastName])) |
| Products | TotalValue        | ([Quantity]*[Price])                 |
+----------+-------------------+--------------------------------------+

Exemplo 3 – Incluir o esquema


Neste exemplo eu junto com sys.objects para incluir o esquema nos resultados.
SELECT 
  SCHEMA_NAME(o.schema_id) AS [Schema],
  OBJECT_NAME(cc.object_id) AS [Table],
  cc.name AS [Computed Column],
  cc.definition
FROM sys.computed_columns cc
INNER JOIN sys.objects o
ON o.object_id = cc.object_id;

Resultado:
+----------+----------+-------------------+--------------------------------------+
| Schema   | Table    | Computed Column   | definition                           |
|----------+----------+-------------------+--------------------------------------|
| dbo      | Person   | FullName          | (concat([FirstName],' ',[LastName])) |
| dbo      | Products | TotalValue        | ([Quantity]*[Price])                 |
+----------+----------+-------------------+--------------------------------------+