sql语句的问题。

rex0520 2014-09-17 11:19:04
我有一系列的表,表名叫group1,group2....group100可能有上千个吧。
我想把这一系列的表的数据全插入到一张表里来。
具体写法如入

declare @i int
declare @a varchar(50)
set @i=1
while @i<101
begin
set @a='insert into qq (a,b,c,d)select a,b,c,d from group'+cast(@i as varchar(3))
set @i=@i+1
exec(@a)
end


还是报错,各位大哥看下我哪里写错了嘛?
...全文
574 49 打赏 收藏 转发到动态 举报
写回复
用AI写文章
49 条回复
切换为时间正序
请发表友善的回复…
发表回复
發糞塗牆 2014-09-19
  • 打赏
  • 举报
回复
引用 47 楼 caoyang0299 的回复:
还没查出来原因。 几个问题。 1.应该不是客户端程序的问题,因为程序连其他数据库好用,就连这个库有这毛病。怀疑是库有问题。 2.通过阻塞的sql,能看出是什么问题不。跟踪的话,是不是应该能把这段sql跟踪出来,但我没跟出来。不知道是不是没跟明白还是怎样。 3.我看跟踪说有跟踪lock的模版,这个跟踪好用不。我这没有,是版本的问题?好用的话,我升下试试。 4.描述一下业务环境,是客户端录入物料,保存时出的错。那select * from 跟物料分类应该有关,那表定义不知道。 还有个现象,因为物料是通过物料的编码区分分类的,如果没有分类的保存就没问题,有分类的就出这问题。 版主再指点指点,谢谢啦
Profiler可以跟踪,但是最好限定在尽可能小的范围,不然带来更大的服务器压力
释怀355_H 2014-09-19
  • 打赏
  • 举报
回复
引用 44 楼 happyminduck 的回复:
我之前也遇到过,是因为我们公司用的英文版本,而数据有繁体字,需要在查询分析器的“设置”中的钩选项“set implicit_transactions"(好像叫”自动转换“)去掉,结果有一天我执行脚本也是锁死,可其他用户好好的,后来尝试把那个一项目钩选后就可以正常执行脚本了,再后来我又把钩选去掉了,并没有出现锁死的问题,具体不知什么原因,不知有没有大侠解释一下这个现象。 楼主要不也尝试一下改变设置中的钩选值。
你用的是哪个版本呢?这个是在哪里呢?我没找到
caoyang0299 2014-09-19
  • 打赏
  • 举报
回复
还没查出来原因。 几个问题。 1.应该不是客户端程序的问题,因为程序连其他数据库好用,就连这个库有这毛病。怀疑是库有问题。 2.通过阻塞的sql,能看出是什么问题不。跟踪的话,是不是应该能把这段sql跟踪出来,但我没跟出来。不知道是不是没跟明白还是怎样。 3.我看跟踪说有跟踪lock的模版,这个跟踪好用不。我这没有,是版本的问题?好用的话,我升下试试。 4.描述一下业务环境,是客户端录入物料,保存时出的错。那select * from 跟物料分类应该有关,那表定义不知道。 还有个现象,因为物料是通过物料的编码区分分类的,如果没有分类的保存就没问题,有分类的就出这问题。 版主再指点指点,谢谢啦
caoyang0299 2014-09-19
  • 打赏
  • 举报
回复
我怎么一直发不了贴啊。
twtiqfn 2014-09-18
  • 打赏
  • 举报
回复
论坛真是有高手在啊,我想成为高手啊
--小F-- 2014-09-17
  • 打赏
  • 举报
回复
你PRINT出来看看是什么结果不就知道了?
happyminduck 2014-09-17
  • 打赏
  • 举报
回复
我之前也遇到过,是因为我们公司用的英文版本,而数据有繁体字,需要在查询分析器的“设置”中的钩选项“set implicit_transactions"(好像叫”自动转换“)去掉,结果有一天我执行脚本也是锁死,可其他用户好好的,后来尝试把那个一项目钩选后就可以正常执行脚本了,再后来我又把钩选去掉了,并没有出现锁死的问题,具体不知什么原因,不知有没有大侠解释一下这个现象。 楼主要不也尝试一下改变设置中的钩选值。
發糞塗牆 2014-09-17
  • 打赏
  • 举报
回复
如果频繁出现,那就不是kill的问题了,而是要找到哪个操作产生了事务但又没有关闭,这个没有简单的步骤,只能一步一步细化,重点在设计和编码上
caoyang0299 2014-09-17
  • 打赏
  • 举报
回复
嗯,跟上面执行的结果一样,我把115kill啦,又能select啦,但是一启动程序,程序就是往这表里insert就又出这毛病啦。 客户下班啦,得明天看啦。 能是啥问题呢。前台程序一insert就犯这毛病
發糞塗牆 2014-09-17
  • 打赏
  • 举报
回复
继续用上面的方法看看spid=115的发生了什么事
caoyang0299 2014-09-17
  • 打赏
  • 举报
回复

哦,这样的,执行的select,图如上
發糞塗牆 2014-09-17
  • 打赏
  • 举报
回复
你先执行对t_item的insert操作,然后新开个窗口查select * from sys.sysprocesses where blocked<>0的结果
caoyang0299 2014-09-17
  • 打赏
  • 举报
回复
DBCC CHECKTABLE ("t_item") WITH PHYSICAL_ONLY 没有任何出错信息
發糞塗牆 2014-09-17
  • 打赏
  • 举报
回复
USE 你的库名;
  GO
  DBCC CHECKTABLE ("t_item") WITH PHYSICAL_ONLY;
  GO
caoyang0299 2014-09-17
  • 打赏
  • 举报
回复
问题依旧,t_item表还是不能查询写入。 select * from sys.sysprocesses where blocked<>0没有任何东西啦
發糞塗牆 2014-09-17
  • 打赏
  • 举报
回复
按照28楼的图,59需要申请waitresource里面的那个资源,但是被56占住了,结果就阻塞了。
caoyang0299 2014-09-17
  • 打赏
  • 举报
回复
我先kill了56吧,先谢谢啦
caoyang0299 2014-09-17
  • 打赏
  • 举报
回复
哦,59被56阻塞啦,导致这表出的问题,但看那语句好像都没什么关联啊,表名都不一样
發糞塗牆 2014-09-17
  • 打赏
  • 举报
回复
56 open tran=1,也就是开启了事务未提交,所以其他事务需要waiting
發糞塗牆 2014-09-17
  • 打赏
  • 举报
回复
kill 56,如无意外你可以继续insert了
加载更多回复(29)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧