exec执行动态sql语句出现被截断问题

不胖到130不改名字 不胖到130不改名字 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
简单说一下,
2k多行sql语句,里面创建了十几张表,
我现在想要表名是随机生成的,
于是就使用了exec执行字符串,
把随机生成的表名作为参数传进去,
于是问题来了,
一部分表名参数传进去后不影响,但是一部分表名参数传进去就导致了字符串被截取
本来思路也简单,大概如下

DECLARE @DataPPBomSUMTableName nvarchar(255)
--@sql 是动态sql语句
DECLARE @sql NVARCHAR(max)
--设置随机表名,这里只是暂时给个固定表名
SET @DataPPBomSUMTableName = 'DataPPBomSUM123'
set @sql = 'sql语句,并且传入参数'
exec(@sql)
--select @sql for xml path('')

这就是我很疑惑的地方,明明只是传参数,为什么一部分参数可以,一部分参数会导致字符串被截断呢?
我的@sql 定义的是NVARCHAR(max) 应该是不存在上限问题的
我所有的参数替换都是使用
表名 replaceall '+@DataPPBomSUMTableName+'

本来行数

传入参数后我用
select @sql for xml path('')
显示出了@sql
发现了字符串已经被截断
而且这个截断不是尾部被截,而是中间的某一部分代码被截没了


因为代码较多,所以我就放度盘了,麻烦各位老师有空的可以帮忙看一下
http://pan.baidu.com/s/1slHkJNn
...全文

相关推荐

SQL Server常见问题及解决方法分享

主要为大家详细介绍了SQL Server常见问题及解决方法,包括SQL Server连接问题,SQL Server日志问题,SQL Server查询很久等问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

weixin_38664612

SQLServer 2008中通过DBCC OPENTRAN和会话查询事务

无论是有意无意,如果事务在数据库中保持打开,则它会阻塞其他进程对修改后的数据进行操作。同样,对事务日志进行备份也只会截断不活动事务的那部分事务日志,所以打开的事务会导致日志变多(甚至达到物理限制),直到事务被提交或回滚。

weixin_38606300

SQL语句大全

(1) 数据记录筛选:   sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"   sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]"   sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]"   sql="select * from 数据表 where 字段名 in ('值1','值2','值3')"

zzjxingyun

Excel导入数据库时出现的文本截断问题解决方案

在把Excel导入到数据库中时,发生文本截断问题:即导入的数据每行只有一部分,遇到这样的问题,甚是尴尬,接下来介绍此问题的解决方法,感兴趣的朋友可以了解下,希望本文对你有所帮助

weixin_38559992

如何解决SQL Server日志满问题

本文先介绍了一种复杂的方法压缩日志及数据库文件。另外还提供一种更简单的方法解决SQL Server日志满问题。

weixin_38686557
评论 15
收藏 已收藏
分享
返回顶部