2012-06-21 4 views
6

計算カラムをnot nullと設定する際に問題があります。計算カラムをNull以外に設定することに問題があります

私が達成したいのは、C001C002...などであり、同時にnot nullと設定します。

これは、NULL値にデフォルト値0を使用することでこれを実現できるフォーラムを読んでいます。
例えば、ISNULL(Price + Taxes, 0)

私はこの式に適用することを試みた:

('C'+right('000'+CONVERT([varchar](3),[ID],(0)),(3))) 

しかし、動作していないようでした。誰が私に何が欠けているか教えてもらえますか?

ALTER CreditCard accountNo AS ISNULL('C'+right('000'+CONVERT([varchar](3),[idCreditCard],(0)),(3)),0) 
+0

'isnull'を使用したalter文は、NULLを許可しない列を作成します。少なくとも私のテストでは。しかし、テーブル名とカラム名の間に 'add'がありません。 –

+0

私が作成しようとしているのは、nullを許可しない列です。テーブル名とカラム名の間にaddを追加しようとしましたが、うまくいきませんでした。 – Keenlearner

+0

しかし...ええと...それは私が言ったことです。ヌルを許可しない列を作成します*。あなたのために何が起こったのですか?何がうまくいかなかったのですか? –

答えて

6

私は最終的に私の問題の解決策を見つけました!

正しいクエリは次のようになります。ヘルプみんなのため

ALTER TABLE CreditCard ADD accountNo AS ISNULL('C'+right('000'+CONVERT([varchar](3),[idCreditCard],(0)),(3)),0) 

ありがとう!

3

これはSQL Serverに関連している場合は、MSDNでこれに関心があります。

'PERSISTEDも指定されている場合のみ、計算カラムにNOT NULLを指定できます。' http://msdn.microsoft.com/en-us/library/ms190273.aspx

...しかし、リバース・エンジニアリングして質問に答えるから試した後、私はkeenlearnerが唯一の列にNULL値が制約を持たずに存在しなかったことを確実にしたかった」ということだと思います。

関連する問題