SQL记录条目,不同的测试用例

时间:2012-06-06 13:09:26

标签: c# mysql sql

关于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");

它会如何影响参赛作品?

4 个答案:

答案 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语句中指定的列数相匹配。

相关问题