SQL Serverでは、T-SQLを使用して、sys.computed_columns
にクエリを実行することにより、計算列の定義を取得できます。 システムカタログビュー。
例1-1つの計算列を返す
これが私のテスト環境で実行した例です。この場合、結果を1つの計算列に絞り込みました。
SELECT definition FROM sys.computed_columns WHERE name = 'TotalValue';
結果:
+----------------------+ | definition | |----------------------| | ([Quantity]*[Price]) | +----------------------+
同じ名前の計算列が複数ある場合は、テーブル名をWHERE
に追加することもできます。 条項:
SELECT definition FROM sys.computed_columns WHERE name = 'TotalValue' AND OBJECT_NAME(object_id) = 'Products';
例2–すべての計算列を返す
この例では、すべての計算列とその定義を返します。
SELECT OBJECT_NAME(object_id) AS [Table], name AS [Computed Column], definition FROM sys.computed_columns;
結果:
+----------+-------------------+--------------------------------------+ | Table | Computed Column | definition | |----------+-------------------+--------------------------------------| | Person | FullName | (concat([FirstName],' ',[LastName])) | | Products | TotalValue | ([Quantity]*[Price]) | +----------+-------------------+--------------------------------------+
例3–スキーマを含める
この例では、sys.objects
と結合します 結果にスキーマを含める。
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;
結果:
+----------+----------+-------------------+--------------------------------------+ | Schema | Table | Computed Column | definition | |----------+----------+-------------------+--------------------------------------| | dbo | Person | FullName | (concat([FirstName],' ',[LastName])) | | dbo | Products | TotalValue | ([Quantity]*[Price]) | +----------+----------+-------------------+--------------------------------------+