34
CREATE TABLE masterTbl (
id INT IDENTITY(1,1) CONSTRAINT pk_id PRIMARY KEY,
name VARCHAR(100))

INSERT INTO masterTbl VALUES ('ABC', 'XYZ','PQR')

Select * FROM masterTbl

結果:

id  | name
---------------------
1 |  ABC
2 |  XYZ
3 |  PQR

DELETE FROM masterTbl WHERE id=1

Select * FROM masterTbl

結果:

id |  name
---------------------
2 |  XYZ
3 |  PQR

今私は実行したい:

INSERT INTO masterTbl (id, name) VALUES (1, 'MNO')

これはどのように可能ですか?

4

4 に答える 4

65

最も単純な形式では、ID値の挿入を一時的に許可する必要があります

SET IDENTITY_INSERT masterTbl ON
INSERT INTO masterTbl (id, name) VALUES (1, 'MNO')
SET IDENTITY_INSERT masterTbl OFF
于 2012-09-24T10:54:26.680 に答える
12

はい、手動で実行するIDフィールドを設定できます

SET IDENTITY_INSERT masterTbl ON

次に、データを挿入します

INSERT INTO masterTbl (id, name) VALUES (1, 'MNO') 
......

と電話することを忘れないでください

SET IDENTITY_INSERT masterTbl OFF

正しい機能を再度有効にするには

于 2012-09-24T10:54:36.773 に答える
4
SET IDENTITY_INSERT masterTbl ON

https://docs.microsoft.com/en-us/sql/t-sql/statements/set-identity-insert-transact-sql?view=sql-server-2017

于 2012-09-24T10:53:49.783 に答える
0

次の手順を実行できます。

I. ID挿入を有効にします。これにより、SQLServerがテーブルのID列に値を自動的に挿入できなくなります。

SET IDENTITY_INSERT ON

II。影響を受けるすべての列名を指定して、「手動」挿入操作を実行します。

INSERT INTO masterTbl (id, name)
VALUES (1, 'ABC',
        2, 'XYZ',
        4, 'PQR')
  • 列名の一覧表示をスキップすると、SQLServerはエラーメッセージをポップアップ表示します。

III。完了したら、以前の手動挿入機能を無効にして、自動ID値の挿入を再度有効にします。

SET IDENTITY_INSERT OFF

IV。完了です。

于 2020-08-14T14:00:14.637 に答える