SQL Server 初心者の質問:
SQL Server (2008) に計算列を導入しようとしています。SQL Server Management Studio のテーブル デザイナーでこれを行うことができますが、デザイナーは、この列の式を定義するために 1 つの編集セルしか提供しません。私の計算列はかなり複雑になるため (いくつかのデータベース フィールドといくつかのケースの違いに応じて)、列定義を入力するためのより快適で保守しやすい方法が必要です (書式設定のための改行などを含む)。
SQL Server で関数 (スカラー値関数またはテーブル値関数) を定義するオプションがあることを確認しました。そのような関数を定義し、この関数を列指定として使用する方がよいでしょうか? また、どのような関数 (スカラー値、テーブル値) ですか?
簡単な例を作成するには:
2 つのデータベース列があります。
DateTime1 (smalldatetime, NULL)
DateTime2 (smalldatetime, NULL)
ここで、4 つの可能な値を持つことができる計算列 "Status" を定義したいと考えています。ダミー言語:
if (DateTime1 IS NULL and DateTime2 IS NULL)
set Status = 0
else if (DateTime1 IS NULL and DateTime2 IS NOT NULL)
set Status = 1
else if (DateTime1 IS NOT NULL and DateTime2 IS NULL)
set Status = 2
else
set Status = 3
理想的にはGetStatus()
、「ステータス」の値を計算したいテーブル行のさまざまな列値にアクセスできる関数が必要であり、計算された列の仕様GetStatus()
をパラメーターなしで定義するだけです。
それはまったく可能ですか?または、「複雑な」計算列定義を操作する最良の方法は何ですか?
事前にヒントをありがとう!