web-dev-qa-db-ja.com

異なるデータ型の別の列に基づいて、列のデフォルト値を設定します

SQLテーブルデザイナで新しいテーブルを作成していますが、列の「デフォルト値またはバインディング」を同じテーブル内の別の列の値に基づいて作成したいと思います。したがって、列Aで列Bの部分文字列から値を取得したいと思います。列Aはnumericデータ型であり、列Bはvarcharです。今、私は次のものを持っていますが、スクリーンショット2のメッセージを受け取ります...ここに何か問題がありますか? CONVERT(numeric (2,0), SUBSTRING(col_b,3,2))という式もあり、同じメッセージが表示されました。

スクリーンショット1:

enter image description here

スクリーンショット2:

enter image description here

12
kyle_13

DEFAULT CONSTRAINTを使用して、ある列のDEFAULT値を別の列に基づいて設定することはできないと思います。

NULL値を置き換えるだけの場合は、計算列を検討することをお勧めします。 http://msdn.Microsoft.com/en-us/library/ms188300.aspx

極端な場合、TRIGGERでやりたいことを正確に行うことができます。 INSTEAD OFINSERTトリガーについて読んでください。 http://technet.Microsoft.com/en-us/library/ms175089(v = sql.105).aspx

13
Raj More