ALTER(列追加)とUPDATE(追加した列に対する)は同時に出来ない?

かえで
2014-05-19 12:42 1870 2
SQL Server Management Studioの一つのタブに、列追加をするALTER文と、その追加した列に対するUPDATE文を記載し、実行するとエラーになりました。

範囲選択をして、ALTER文とUPDATE文を分けて流すとエラーになりませんでした。

一度に流すのはダメなんでしょうか?

SQL Server 2008 です。

コメント

2014年 05月 20日 (11:43)
こんにちは
イノ(inno)です。

2つの方法を紹介したいと思います。
まずはテストのためにテーブルを作成とデータを登録しましょう。

CREATE TABLE dbo.TempData
(
StrVal varchar(10) not null
)

INSERT INTO dbo.TempData (StrVal) VALUES ('Data1')
INSERT INTO dbo.TempData (StrVal) VALUES ('Data2')


SELECT TOP 20 * FROM dbo.TempData


では、ALTERでカラムを追加して、UPDATE文で処理する方法について説明します。
方法1.

ALTER TABLE dbo.TempData
ADD StrData1 varchar(10)
GO

UPDATE dbo.TempData
SET StrData1 = 'A'
GO

各クエリごとに「GO」を付けて一緒に実行してください。
上記のSQLを実行してみると分かると思います。

方法2.
仕様によって使えない場合もありますが、下記のようにもできます。

ALTER TABLE dbo.TempData
ADD StrData1 varchar(10) DEFAULT('A') NOT NULL
GO

カラムのDEFAULT値として入れることですね。
かえで 2014年 05月 20日 (16:04)
なるほど~
ありがとうございます。