0

关于 C# 存储过程的一个小问题......以及一般的 SQL DB:当您将变量值从 C# 传递到存储过程时,有时您有

INSERT INTO tablename (column1 name, column2 name, column3 name, columnN name) 
VALUES (@the actual values1, @values2, @valueN);

其他时候你没有列名,但只有输入的值......如果我输入这样的内容会发生什么,(假设表有 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

4 回答 4

1

第一个查询会将默认值插入ash,其他两个不会解析。

于 2012-06-06T13:11:47.600 回答
1

正如 Quassnoi 和 Marco 指出的 sql 方面的错误问题。

在 C# 中调试时,您将收到以下错误。

INSERT 语句中的列数少于 VALUES 子句中指定的值。VALUES 子句中的值数必须与 INSERT 语句中指定的列数相匹配。

于 2012-06-06T13:16:41.133 回答
0

第一个查询正确插入该记录(如果没有主键违规)。
第二个查询失败,因为您有三个值和两个字段。
第三个查询失败,因为您有两个字段的一个值。

于 2012-06-06T13:12:46.197 回答
0

在 SQL 中,第一个查询成功执行,而对于第二个查询,您将收到以下错误:INSERT 语句中的列数少于 VALUES 子句中指定的值。VALUES 子句中的值数必须与 INSERT 语句中指定的列数相匹配。第三个查询也将产生以下错误:INSERT 语句中的列数多于 VALUES 子句中指定的值。VALUES 子句中的值数必须与 INSERT 语句中指定的列数相匹配。

于 2012-06-06T13:45:44.367 回答