2013-02-24 38 views
1

假设我有nvarchar(300)列。SQL Server - 附加旋转文本字段

我追加文本,如下所示:

update tablename set fieldname = fieldname + 'appended string' 

我怎么能告诉SQL Server自动修剪从开始的文本,以确保它不会超过最大列长度?

+1

如果你处理的** **的Unicode在SQL Server中字符串(和'nvarchar'是Unicode) - 你应该总是使用' N'...''符号 - 例如'更新表名设置fieldname = fieldname + N'appended string'',以清楚说明你的字符串文字是Unicode ... – 2013-02-24 21:15:05

回答

1

您可以使用该功能RIGHT

update tablename set fieldname = RIGHT(fieldname + N'appended string', 300) 
+0

@LoveDotNet我认为它从一开始就真正修剪,你的例子显示了这一点。 – GolfWolf 2013-02-24 21:30:11

+0

那么为什么它以“stringappended string”结尾?它不应该总是以“stringappended”结尾吗? – SharpAffair 2013-02-24 21:34:03

+0

@LoveDotNet如果它只是从头开始修剪,那么最后应该保持原样,它应该是“”附加字符串“' – GolfWolf 2013-02-24 21:35:54