印刷用ページ       送信     
クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
SQL Server
Microsoft SQL Server 2000
SDK ドキュメント
Transact-SQL リファレンス
SET
 SET IDENTITY_INSERT

  低帯域幅での表示をオンにする
Transact-SQL リファレンス
SET IDENTITY_INSERT

テーブルの ID 列に明示的な値を追加することを許可します。テーブルの ID 列に明示的な値を追加することを許可します。

構文

SET IDENTITY_INSERT [ database.[ owner.] ] { table } { ON | OFF }

引数

database

指定したテーブルを含むデータベースの名前です。

owner

テーブル所有者の名前です。

table

ID 列があるテーブルの名前です。

解説

セッション内の 1 つのテーブルのみが IDENTITY_INSERT プロパティを ON に設定できます。あるテーブルで既にこのプロパティが ON に設定されている状態で、別のテーブルに対して SET IDENTITY_INSERT ON ステートメントを実行すると、Microsoft® SQL Server™ は、SET IDENTITY_INSERT が既に ON であるというエラー メッセージを返し、このプロパティが ON に設定されているテーブルをレポートします。

挿入する値がテーブルの現在の ID 値を超える場合は、SQL Server は自動的に、新しく挿入された値を現在の ID 値として使います。

SET IDENTITY_INSERT は、解析時ではなく実行時に設定されます。

権限

実行権限は、特に指定のない限り、固定サーバー ロール sysadmin、固定データベース ロール db_owner、固定データベース ロール db_ddladmin、およびオブジェクト所有者に与えられます。

この例では、ID 列を含むテーブルを作成した後、SET IDENTITY_INSERT の設定を使用して、DELETE ステートメントによって ID 値に発生したギャップを埋める方法を示しています。

-- Create products table.
CREATE TABLE products (id int IDENTITY PRIMARY KEY, product varchar(40))
GO
-- Inserting values into products table.
INSERT INTO products (product) VALUES ('screwdriver')
INSERT INTO products (product) VALUES ('hammer')
INSERT INTO products (product) VALUES ('saw')
INSERT INTO products (product) VALUES ('shovel')
GO

-- Create a gap in the identity values.
DELETE products
WHERE product = 'saw'
GO

SELECT *
FROM products
GO

-- Attempt to insert an explicit ID value of 3;
-- should return a warning.
INSERT INTO products (id, product) VALUES(3, 'garden shovel')
GO
-- SET IDENTITY_INSERT to ON.
SET IDENTITY_INSERT products ON
GO

-- Attempt to insert an explicit ID value of 3
INSERT INTO products (id, product) VALUES(3, 'garden shovel').
GO

SELECT *
FROM products
GO
-- Drop products table.
DROP TABLE products
GO

関連項目

CREATE TABLE

IDENTITY (プロパティ)

INSERT

SET

© 2009 Microsoft Corporation. All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker