sql >> データベース >  >> RDS >> Sqlserver

T-SQLを使用してSQLServerで計算列の定義を取得する方法

    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])                 |
    +----------+----------+-------------------+--------------------------------------+
    

    1. MySQL全文検索の関連性を操作して、あるフィールドを別のフィールドよりも「価値のある」ものにするにはどうすればよいですか?

    2. SQLiteの列のデフォルト値を設定します:DEFAULT Constraint

    3. テキスト配列に入力と同様の値が含まれている行を検索する

    4. 例外が発生したときにデータベース接続を閉じるための最適なデザインパターン