exec执行动态sql语句出现被截断问题
简单说一下,
2k多行sql语句,里面创建了十几张表,
我现在想要表名是随机生成的,
于是就使用了exec执行字符串,
把随机生成的表名作为参数传进去,
于是问题来了,
一部分表名参数传进去后不影响,但是一部分表名参数传进去就导致了字符串被截取
本来思路也简单,大概如下
这就是我很疑惑的地方,明明只是传参数,为什么一部分参数可以,一部分参数会导致字符串被截断呢?
我的@sql 定义的是NVARCHAR(max) 应该是不存在上限问题的
我所有的参数替换都是使用
表名 replaceall '+@DataPPBomSUMTableName+'
本来行数

传入参数后我用
发现了字符串已经被截断
而且这个截断不是尾部被截,而是中间的某一部分代码被截没了

因为代码较多,所以我就放度盘了,麻烦各位老师有空的可以帮忙看一下
http://pan.baidu.com/s/1slHkJNn
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查询很久等问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
SQLServer 2008中通过DBCC OPENTRAN和会话查询事务
无论是有意无意,如果事务在数据库中保持打开,则它会阻塞其他进程对修改后的数据进行操作。同样,对事务日志进行备份也只会截断不活动事务的那部分事务日志,所以打开的事务会导致日志变多(甚至达到物理限制),直到事务被提交或回滚。
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')"
Excel导入数据库时出现的文本截断问题解决方案
在把Excel导入到数据库中时,发生文本截断问题:即导入的数据每行只有一部分,遇到这样的问题,甚是尴尬,接下来介绍此问题的解决方法,感兴趣的朋友可以了解下,希望本文对你有所帮助
如何解决SQL Server日志满问题
本文先介绍了一种复杂的方法压缩日志及数据库文件。另外还提供一种更简单的方法解决SQL Server日志满问题。


疑难问题
