1

我使用这种语法得到错误:

update table set field1 = (field1+' - '+field2) where field1 = 'somevalue'

为我做这件事不太高兴。我知道用于连接的“+”在我的选择语句中有效,所以这是正确的语法。这里还有其他东西在起作用......我也尝试删除括号。

例子:

如果 field1 = 'Cheese' 和 field2 = 'ConQueso'
那么我的更新应该将 field1 = 'Cheese' 的所有记录设置为 field1 = 'Cheese - ConQueso'


编辑:
两个字段都是文本字段

4

2 回答 2

2

如果不提供错误,很难说,但组合数据大小可能超过 field1。

例如,如果field1is varchar(50) 和field2is varchar(50),则包括 your 在内的总和最多可达 103 个字符' - ',超过了 field1 的 50 个字符。

于 2009-06-19T14:53:57.753 回答
2

(编辑:在更新澄清数据类型之前的日期是text;但可以正常工作varchar(max)

在这里工作正常(SQL2005):

create table [table] (
   field1 varchar(max) not null,
   field2 varchar(max) not null)
insert [table] values ('somevalue','abc')
insert [table] values ('other','def')
update [table] set field1 = (field1+' - '+field2) where field1 = 'somevalue'
select * from [table]

输出:

field1               field2
-------------------- --------------------
somevalue - abc      abc
other                def
于 2009-06-19T14:55:03.100 回答