Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL在列中获取字符长度问题,但可以';t使用变量进行复制_Sql_Sql Server_Database_Tsql - Fatal编程技术网

SQL在列中获取字符长度问题,但可以';t使用变量进行复制

SQL在列中获取字符长度问题,但可以';t使用变量进行复制,sql,sql-server,database,tsql,Sql,Sql Server,Database,Tsql,我在一个表中有一列的长度为nvarchar(60),但当我试图用32个字符的字符串“the#1 INTERNATIONAL BESTSELLER”更新该列时,它抛出了一个错误 Msg 2628,16级,状态1,第13行 字符串或二进制数据将在表“dbo.table”列“x”中被截断。截断值:“#1国际畅销书” 但是,当我尝试使用下面的工具时,它是有效的 declare @x nvarchar(60) select @x='THE # 1 INTERNATIONAL BESTSELLER' pri

我在一个表中有一列的长度为nvarchar(60),但当我试图用32个字符的字符串“the#1 INTERNATIONAL BESTSELLER”更新该列时,它抛出了一个错误

Msg 2628,16级,状态1,第13行 字符串或二进制数据将在表“dbo.table”列“x”中被截断。截断值:“#1国际畅销书”

但是,当我尝试使用下面的工具时,它是有效的

declare @x nvarchar(60)
select @x='THE # 1 INTERNATIONAL BESTSELLER'
print @x
有人能帮我理解吗。

你能这样试试吗

declare @x nvarchar(60)
select @x=REPLACE(REPLACE('THE # 1 INTERNATIONAL BESTSELLER',char(10),''),char(13),'')
print @x

可能在正在分配的字符串中有隐藏字符。另一种可能性是表中有一个生成错误的
update
触发器。该列似乎定义为varchar(60)。发布表格定义。显示实际使用的代码,而不是不涉及实际表格的“模拟”。