0

既存のテーブルの整数フィールドをnull許容から非null可能に変更し、デフォルト値を追加しようとしています。

    ALTER TABLE dbo.current_status  
ALTER COLUMN next_sign_id INT NOT NULL

このステートメントは機能しますが、これは機能しません。

    ALTER TABLE dbo.current_performance_status  
ALTER COLUMN next_sign_tp_id INT NOT NULL DEFAULT(0)

ここでの問題は何ですか?1つのステートメントで両方を達成するにはどうすればよいですか?私はSQL2008を使用しています。

4

1 に答える 1

2

これは3つのステートメントで行う必要があります(@MartinSmithの健全性チェックに感謝しWITH VALUESます。この場合は正しくないことを提案しましたが、このテーブルは空ではない可能性があることを私に思い出させました):

ALTER TABLE dbo.current_performance_status 
  ADD CONSTRAINT df DEFAULT (0) FOR next_sign_id;

UPDATE dbo.current_performance_status 
 SET next_sign_id = 0
 WHERE next_sign_id IS NULL

ALTER TABLE dbo.current_performance_status
  ALTER COLUMN next_sign_id INT NOT NULL;
于 2012-06-18T19:02:52.877 に答える