4

我有许多数据库要维护,并且我不想为每个环境创建一个脚本,所以我创建了同义词并结合链接服务器来抽象出我的更新语句的表。

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

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

下面是我如何设置的示例。

--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
4

2 回答 2

0

您是否尝试过设置lazy schema validationto true/ false

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

http://msdn.microsoft.com/en-us/library/ms178532.aspx

于 2012-12-03T20:42:05.783 回答
0

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

于 2012-12-10T17:01:05.840 回答