AX 2009错误:指定的文字字符串的长度超过了最大限制

时间:2012-06-19 13:19:52

标签: sql-server axapta dynamics-ax-2009

保存SalesLine时,只更改Name字段,doUpdate方法偶尔会抛出错误异常:

  

指定文字字符串的长度超过最大限制。

当Name的字符串长度为128时,doUpdate成功 当Name的字符串长度为129时,doUpdate失败(但有时如果更改字符则会成功)。

Name字段的定义长度为1000个字符(数据库中为nvarchar(1000))。

它在生产系统中失败了,但在测试系统中失败了!

未启用数据库日志记录。数据库是SQL 2008 R2。 AX核心版本:5.0.1500.5660

有人看到过这个错误吗? 有什么提示要解决吗?

3 个答案:

答案 0 :(得分:1)

不要在查询中使用文字。 我在salesLine数据源初始化方法中使用了文字。 喜欢:

SalesLine_ds.query()文本(true);

答案 1 :(得分:0)

有可能在sql server 2008中使用了引号吗?

在此版本的SQL Server

中,长度限制似乎存在128个字符的问题

http://sqlserverpedia.com/blog/sql-server-bloggers/watchout-when-using-quotename-2/

答案 2 :(得分:0)

我也看到过这种行为。 它必须与David发布的文字相结合。您在查询中使用literalsplaceholders吗?

我可以在内核5.0.1600.2967(在salestable上)完美地重现这一点。

必须是forceliteralsdoUpdate()

组合的错误

将字段更改为数据类型备忘录或其他一些更改,例如更改cachelookup也不会有帮助。