我正试图插入两个,但出了问题
本文关键字:两个 问题 插入 | 更新日期: 2023-09-27 18:22:01
我正在字符串中插入两个表,但出现了问题。它返回以下消息:
附加信息:"GO"附近的语法不正确。
con.Open();
SqlCommand cmd = new SqlCommand("SET IDENTITY_INSERT dbo.Tomasos ON;GO DECLARE @IDENTITY INT INSERT INTO Bestallning (BestallningDatum, Totalbelopp, Levererad, KundID) VALUES ('28-02-2014', '250', '1', '1') SELECT @IDENTITY = SCOPE_IDENTITY() INSERT INTO BestallningMatratt (MatrattID, BestallningID, Antal) VALUES ('1', @IDENTITY, '3') SET IDENTITY_INSERT dbo.Tomasos OFF; GO", con);
cmd.ExecuteNonQuery();
con.Close();
SET IDENTITY_INSERT dbo.Tomasos ON;
DECLARE @IDENTITY INT INSERT INTO Bestallning (BestallningDatum, Totalbelopp, Levererad, KundID) VALUES ('28-02-2014', '250', '1', '1')
SELECT @IDENTITY = SCOPE_IDENTITY()
INSERT INTO BestallningMatratt (MatrattID, BestallningID, Antal) VALUES ('1', @IDENTITY, '3') SET IDENTITY_INSERT dbo.Tomasos OFF;
我认为你不需要GO最后我还认为你需要
设置IDENTITY_INSERT dbo。托马索斯关闭;
go是一个批处理分隔符,这里没有需要单独执行的命令,因此您可以将其作为单个批处理来执行:
con.Open();
SqlCommand cmd = new SqlCommand(@"SET IDENTITY_INSERT dbo.Tomasos ON;
DECLARE @IDENTITY INT;
INSERT INTO Bestallning
(BestallningDatum, Totalbelopp, Levererad, KundID)
VALUES
('28-02-2014', '250', '1', '1');
SELECT @IDENTITY = SCOPE_IDENTITY();
INSERT INTO BestallningMatratt
(MatrattID, BestallningID, Antal)
VALUES
('1', @IDENTITY, '3');
SET IDENTITY_INSERT dbo.Tomasos OFF;", con);
cmd.ExecuteNonQuery();
con.Close();
编辑:顺便说一句,看看值和字段名,听起来有些值实际上不是字符串,但你依赖于隐式转换,这是非常危险的。由于您使用的是C#,因此使用真实数据类型作为参数传递真实值会更容易、更安全(而且在现实生活中,没有人会对这些值进行编码)。