0

我遇到了一种情况,其中 SQL 数据库中的列名是 [列名],我正在尝试按该列更新它。

选择很简单:从 MyDatabase 中选择 [列名]。

我正在尝试这样做(参数化): UPDATE MyDatabase WHERE [column name] = @[column name]

错误说: 列名不存在:@column

我不能只更改数据库中的名称,因为它已经存在了一段时间,而且很可能会破坏一堆东西。

感谢大家的帮助!

戴夫

4

4 回答 4

2

参数名不必与列名匹配。(实际上,它不能有空格)只需将参数名称更改为不包含空格即可。

 UPDATE MyDatabase WHERE [column name] = @columnname
于 2013-08-29T15:15:12.430 回答
0

参数/变量中不能有空格。但话又说回来,它们不必匹配列名。

你可以有类似的东西

UPDATE MyDatabase WHERE [column name] = @column_name
于 2013-08-29T15:14:55.573 回答
0

根据http://technet.microsoft.com/en-us/library/ms176027(v=sql.105).aspx

Microsoft SQL Server 无法识别带分隔符的变量名称和存储过程参数。这些类型的标识符必须符合常规标识符的规则。

这意味着您不能@[variable name]在代码中使用。你必须凑合着用@variable_name或类似的。

于 2013-08-29T15:15:07.373 回答
0
UPDATE MyTable WHERE [column name] = @this_is_parameter_name
于 2013-08-29T15:16:43.950 回答