他のテーブル(Department)の主キーの既定の制約を持つテーブル(Employee)に列(MSSQL 2005)を追加しようとしています。それから私はこの列をそのテーブルにFKにするつもりです。基本的に、DepartmentIDが指定されていない場合、部門名に基づいて新しい従業員を基本部門に割り当てます。プログラムで決定された定数DEFAULT値を持つALTER TABLE
DECLARE @ErrorVar INT
DECLARE @DepartmentID INT
SELECT @DepartmentID = DepartmentID
FROM Department
WHERE RealName = 'RocketScience'
ALTER TABLE [Employee]
ADD [DepartmentID] INT NULL
CONSTRAINT [DepartmentIDOfAssociate] DEFAULT (@DepartmentIDAssociate)
SELECT @ErrorVar = @@Error
IF (@ErrorVar <> 0)
BEGIN
GOTO FATAL_EXIT
END
生産、テスト、および開発データベースは同期の外に成長しているとDepartmentName =「RocketScience」ののDepartmentIDがまたはので、私はしたくないと同じであってもなくてもよい:
これは動作しません。 DEFAULT(somenumber)と言うだけです。どのような方法で問題を攻撃しても、「変数はALTER TABLE文で許可されていません。
これを行う正しい方法は何ですか?私はselect文をネストしようとしましたが、「サブクエリはこのコンテキストでは許されません。スカラ式だけが許可されています。」また
、私は1つのステートメントで列の値を移入代わりに
を
{更新値を} {ヌルをALTER}やってできた、本当に素晴らしいことだ何
を{nullではないALTER}ステップ。私はWITH VALUESコマンドについて何かを読んだが、動かすことができなかった。 ありがとうございます!
私がしようとしますが、私はドキュメントが許される唯一のシステム機能を言ったと思った... –
はそれを試してみてください - 私がやった - (SQL Server 2008で、つまり私のために働いた - しかし私は、これは2005年の間とを変更した疑い2008) –
私はそれが素晴らしい仕事をあなたの答えを受け入れる! –