0

我正在使用 Advantage Database Server 9.10,并且我想将文本附加到备注字段。

我试过这个方法

UPDATE 
  myTable 
SET 
  memo =   cast(memo as SQL_VARCHAR(max)) 
         + cast(' Appended string' as SQL_VARCHAR(max)) 
WHERE 
  pk = '80'

但它不起作用,

有人知道该怎么做吗?

4

3 回答 3

2

我认为你可以更简单地写成:

UPDATE 
  myTable 
SET 
  memo = memo + ' Appended string' 
WHERE 
  pk = '80'

如果该memo字段可能为 NULL 并且您不希望结果为 NULL,则可以执行以下操作:

...
SET
  memo = ifnull( memo, '' ) + ' Appended string'
...
于 2012-06-05T18:22:12.087 回答
1

ADS中没有VARCHAR(MAX)数据类型,但您可以强制转换为SQL_VARCHARSQL_CHAR替代。

正确的语法:

UPDATE
  myTable 
SET 
   memo =   cast(memo as SQL_VARCHAR) 
          + cast(' Appended string' as SQL_VARCHAR) 
WHERE 
   pk = '80'

您可以在广告文档中找到 CAST 和 CONVERT 的有效数据类型列表:

http://devzone.advantagedatabase.com/dz/webhelp/Advantage10.1/master_miscellaneous_functions.htm

于 2012-06-05T15:52:21.633 回答
0

这对我有用,你只需要确保你允许足够的字符 VARCHAR()

UPDATE 
   myTable 
SET 
   memo = CONVERT(VARCHAR(8000),memo) + ' Appended String'
FROM 
   myTable
WHERE 
   pk = '80' 

我添加了FROM myTable因为在我的项目中我还必须添加LEFT JOIN几个表。

于 2014-01-03T03:51:03.347 回答