关于C#存储过程的一个小问题...和SQL DB一般: 当您将C#中的变量值传递给存储过程时,有时
INSERT INTO tablename (column1 name, column2 name, column3 name, columnN name)
VALUES (@the actual values1, @values2, @valueN);
其他时候你没有列名但只输入了VALUES ... 如果我输入类似的东西会发生什么,(假设表有3列称为“bob”,“ash”和“will”):
INSERT INTO tablename (bob, will) VALUES ("hi","hello");
OR
INSERT INTO tablename (bob, will) VALUES ("hi","hello","okay");
OR
INSERT INTO tablename (bob, will) VALUES ("hello");
它会如何影响参赛作品?
答案 0 :(得分:1)
第一个查询会将默认值插入ash
,其他两个不会解析。
答案 1 :(得分:1)
Quassnoi和Marco指出了sql方面的错误问题。
在C#中进行调试时,您将收到以下错误。
INSERT语句中的列数少于指定的值 在VALUES条款中。 VALUES子句中的值的数量必须为 匹配INSERT语句中指定的列数。
答案 2 :(得分:0)
正确记录的第一个查询插入(如果没有主键违规) 第二个查询失败,因为您有三个值和两个字段 第三个查询失败,因为您有两个字段的值。
答案 3 :(得分:0)
在SQL中,第一个查询成功执行,而对于第二个查询,您将收到以下错误: INSERT语句中的列少于VALUES子句中指定的值。 VALUES子句中的值数必须与INSERT语句中指定的列数相匹配。 和第三个查询也会产生以下错误: INSERT语句中的列多于VALUES子句中指定的值。 VALUES子句中的值数必须与INSERT语句中指定的列数相匹配。