Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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 server 链接的SQL Server和更新的Varchar(MAX)被截断_Sql Server_Sql Server 2008 R2 - Fatal编程技术网

Sql server 链接的SQL Server和更新的Varchar(MAX)被截断

Sql server 链接的SQL Server和更新的Varchar(MAX)被截断,sql-server,sql-server-2008-r2,Sql Server,Sql Server 2008 R2,我有许多数据库需要维护,我不想为每个环境创建一个脚本,所以我结合一个链接服务器创建了同义词,以便为我的update语句提取表 我的问题是,我似乎无法更新超过24-32个字符的varchar(max)字段(而且它会有所不同!) 我一直在研究网络,但我找不到任何与此直接相关的东西。(更新:链接到我的工作站,而不是通过网络连接到服务器,本地链接的sql server更新良好。我认为这是主机的一部分环境问题?可能是某些定义的限制?) 下面是我如何设置的示例 --I create some dynamic

我有许多数据库需要维护,我不想为每个环境创建一个脚本,所以我结合一个链接服务器创建了同义词,以便为我的update语句提取表

我的问题是,我似乎无法更新超过24-32个字符的varchar(max)字段(而且它会有所不同!)

我一直在研究网络,但我找不到任何与此直接相关的东西。(更新:链接到我的工作站,而不是通过网络连接到服务器,本地链接的sql server更新良好。我认为这是主机的一部分环境问题?可能是某些定义的限制?)

下面是我如何设置的示例

--I create some dynamic sql to create the sysnonyms for me.
declare @Synonym varchar(30) = 'sym_Employee'
declare @DBTable = 'Employee'
Select @Stmt = 'create synonym ' + @Synonym + ' for TargetSQLServer.' + @DBName + '.dbo.' + @DBTable + ';'
exec @Stmt

--this statment stops at 24 chars, but the column def is varchar(max)
update sym_employee
set Notes = '012345678901234567890123456789'
where employee_ID = 1

您是否尝试过将
惰性模式验证设置为
true
/
false

有关以下链接的更多详细信息:


请确保您已使用varchar数据类型定义了长度,因为当您未使用varchar定义长度时,它会使用默认长度(我猜是20个字符),这可能会导致问题。

无法在SQL Server 2005和SQL Server 2008R2上重现所描述的行为SqlServerCentral上也提到了相同的问题,但是那里没有发布解决方案:1)Update语句在本地(非链接)数据库上正常工作吗?2)该表上有触发器吗?1)它在非链接数据库上正常工作。我还将其缩小到链接服务器,而不是同义词。2) 表上没有触发器我认为它是一个sp_serveroption,就像为存储过程配置rpc&rpc out一样?它没有效果-但我有很高的期望!我这样做了,但没有效果-这个问题仍然是个谜!