2017-12-16 4 views
0

現在、T-SQLデータベースにデータを挿入しようとしています。私は、以下の提供されたコードを試してみましたが、それは言う:それは実際にデータを挿入するように、キーワードの近くにSQL Server用の文字列(NetBeans)

正しくない構文がinto

は、どのように私はこのコード行を修正しますか?ここで

は、これまでの私のコードです(私は/オフにIDを設定した理由T-SQLでそれはthatsの必要があります)

String sql = "SET IDENTITY_INSERT ON"+ "insert into APPOINTMENT" 
        +"(APPOINTMENT_ID, APPOINTMENT_DATE, VET_ID, PET_ID)" 
        +"values(?,?,?,?) SET IDENTITY_INSERT OFF"; 
+0

あなた自身の言葉で説明するのではなく、エラーを引用してください。 –

答えて

0

ON後のスペース:

String sql = "SET IDENTITY_INSERT ON "+ "insert into APPOINTMENT" 
        +"(APPOINTMENT_ID, APPOINTMENT_DATE, VET_ID, PET_ID)" 
        +"values(?,?,?,?) SET IDENTITY_INSERT OFF"; 
+0

私は依然として –

+0

のところで誤った構文を取得しています。 "" IDENTITY_INSERTの指定を有効にしてください。 "+" APPOINTMENTに挿入してください。 –

0

セットのアイデンティティ挿入--youは、例えば、クエリ

witout別の実行必要

CREATE TABLE dbo.T1 (column_1 int IDENTITY, column_2 VARCHAR(30)); 
GO 
INSERT T1 VALUES ('Row #1'); 
INSERT T1 (column_2) VALUES ('Row #2'); 
GO 
SET IDENTITY_INSERT T1 ON; 
GO 
INSERT INTO T1 (column_1,column_2) 
    VALUES (-99, 'Explicit identity value'); 
GO 
SELECT column_1, column_2 
FROM T1; 
GO 
この例の

は実行されましたが、あなたはクエリを挿入しません。

0

コードに2つの問題があります。コマンドを空白および/またはセミコロンの文のターミネータで区切る必要があります。また、IDENTITY_INSERT`テーブル名を指定する必要があります。

String sql = "SET IDENTITY_INSERT APPOINTMENT ON;"+ "INSERT INTO APPOINTMENT" 
        +"(APPOINTMENT_ID, APPOINTMENT_DATE, VET_ID, PET_ID)" 
        +"values(?,?,?,?);SET IDENTITY_INSERT OFF";