有人知道执行接近300000个字符的动态SQL的方法吗SQL server 2008及以上版本
有人知道执行大约300000个字符的动态SQL的方法吗有人知道执行接近300000个字符的动态SQL的方法吗SQL server 2008及以上版本,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,有人知道执行大约300000个字符的动态SQL的方法吗 后台-运行夜间进程来清理数据,并根据白天应用程序中定义的规则创建触发器。这些触发器更新多个表,此时创建它们的唯一方法是通过动态sql。有什么想法吗?这听起来像是一场维护噩梦。难道您不能创建几个更小的存储过程以在计划中运行吗?抛开这听起来有多难看,sp_executesql最多可以处理2 GB的字符串,这留下了很大的空间,因此这可能会变得更难看!这种情况并不经常发生,更像是当策略发生变化时,触发器似乎是实现类似级联更新的理想解决方案。即使我将
后台-运行夜间进程来清理数据,并根据白天应用程序中定义的规则创建触发器。这些触发器更新多个表,此时创建它们的唯一方法是通过动态sql。有什么想法吗?这听起来像是一场维护噩梦。难道您不能创建几个更小的存储过程以在计划中运行吗?抛开这听起来有多难看,sp_executesql最多可以处理2 GB的字符串,这留下了很大的空间,因此这可能会变得更难看!这种情况并不经常发生,更像是当策略发生变化时,触发器似乎是实现类似级联更新的理想解决方案。即使我将对象从触发器切换到存储过程,最终也会遇到相同的动态sql限制问题。您遇到了什么问题?正如安德鲁所说,这是完全可能的<代码>nvarchar(max)允许10亿个字符。由于您用于动态sql的类型,它在4000个字符时出错。基本上,您的动态sql正在转换为nvarchar(4000),可能来自
varchar(n)
和nvarchar(n|max)