【问题标题】:String for SQL Server (NetBeans)SQL Server (NetBeans) 的字符串
【发布时间】:2017-12-16 16:48:57
【问题描述】:

我目前正在尝试将数据插入到我的 T-SQL 数据库中。我已经尝试了下面提供的代码,但它说:

关键字into附近的语法不正确

如何修复这行代码,使其真正插入数据?

这是我目前的代码(我在 T-SQL 中需要它,这就是我设置身份开/关的原因)

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

【问题讨论】:

  • 请引用错误而不是用你自己的话描述它。

标签: java sql-server netbeans


【解决方案1】:

ON 后的空格:

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

【讨论】:

  • 试试"SET IDENTITY_INSERT APPOINTMENT ON;"+ "insert into APPOINTMENT..."
【解决方案2】:

set identity insert -- 你需要在没有查询的情况下运行另一个

例如

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

在这个例子中是在没有你插入查询的情况下运行身份插入

【讨论】:

    【解决方案3】:

    您的代码有两个问题。您需要用空格和/或分号语句终止符分隔命令。另外,您需要指定 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";
    

    【讨论】:

      猜你喜欢
      • 2014-03-21
      • 1970-01-01
      • 2021-02-18
      • 2016-11-24
      • 2011-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多