Axi*_*ili 33 sql t-sql sql-server
如何在SQL Server中的列中添加字符串?
UPDATE [myTable] SET [myText]=' '+[myText]
Run Code Online (Sandbox Code Playgroud)
这不起作用:
数据类型varchar和text在add运算符中不兼容.
您可以在MySQL上使用concat,但是如何在SQL Server上执行?
Tob*_*zer 63
像之前所说的那样最好是将列的数据类型设置为nvarchar(max),但如果不可能,则可以使用强制转换或转换来执行以下操作:
-- create a test table
create table test (
a text
)
-- insert test value
insert into test (a) values ('this is a text')
-- the following does not work !!!
update test set a = a + ' and a new text added'
-- but this way it works:
update test set a = cast ( a as nvarchar(max)) + cast (' and a new text added' as nvarchar(max) )
-- test result
select * from test
-- column a contains:
this is a text and a new text added
Run Code Online (Sandbox Code Playgroud)
希望有所帮助
mar*_*c_s 16
停止TEXT在SQL Server中使用数据类型!
自2005年版以来,它已被弃用.使用VARCHAR(MAX)替代,如果你需要超过8000个字符.
该TEXT数据类型不支持正常的字符串函数,而VARCHAR(MAX)不会-你的声明会工作得很好,如果你可以只使用VARCHAR类型.
该+(字符串串联)不SQL Server上的图像工作,ntext或文本数据类型.
实际上,image,ntext和text都已弃用.
将来的MicrosoftSQL Server版本中将删除ntext,text和image数据类型.避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序.请改用nvarchar(max),varchar(max)和varbinary(max).
这就是说,如果您使用的是旧版本的SQL Server而不是想使用UPDATETEXT来执行连接.Colin Stasiuk在他的博客文章专栏文章栏中提供了一个很好的例子(SQL 2000 vs SQL 2005+).
嗯,尝试做CAST(' ' AS TEXT) + [myText]
尽管如此,我并不完全确定这会如何发展。
我还建议不要使用 Text 数据类型,而使用 varchar 代替。
如果这不起作用,请尝试' ' + CAST ([myText] AS VARCHAR(255))
| 归档时间: |
|
| 查看次数: |
128122 次 |
| 最近记录: |