2008年4月25日金曜日

[他]IDENTITYフィールドに指定の値を突っこむ(SQLServer)

SQLServerでは、フィールドに対してIDENTITYという属性を付けることができます。この属性を設定すると、INSERT時に自動的に値を設定してくれます。MS-Accessでいうところのオートナンバー型ですね。

しかし、事故など(間違えでDELETEしたなど)があると、値を指定できないためそのレコードを復元することができません。たとえばこの値を別のテーブルの値として設定している場合など、データを復元するためにかなりの労力が必要となります。

過去、そういう場合あきらめていましたが、IDENTITY属性のあるフィールドに無理やり値を指定する方法があることがわかりました。リファレンスはこちら
コードはこんな感じ。

SET IDENTITY_INSERT table1 ON;
INSERT INTO table1(pidtex1tex2)values(800,'1','2')
SET IDENTITY_INSERT table1 OFF;


リファレンスをみると、いろんなSET文があります。一通り眺めてみると勉強になりそうですね。

0 件のコメント: