首页
 
*
microsoft.com主页 | 网站地图
msdn *
| 开发中心 | 的msdn闪光 | 订阅者
博客首页
登录 | 加入
  • 搜索
  • 的rss
  • 的opml

数据库,分析与服务有关的故事。

2000年数据库迁移到sql 2005年:临时表重用问题。

在同一 项目下一期发现:临时表重用。 下面是一个例子“如何重现” :

使用的tempdb

 

创建程序dbo.usp_step_one

作为

动工

                创建表#气温(编号中断not null的, num个中断)

                修改表#气温地址约束pk_id主键(编号)

                插入#气温选择1 , 1

 

创建程序dbo.usp_step_two

作为

动工

                创建表#气温(编号中断not null的, num个中断)

                插入#气温选择1 , 1

 

陈动工

exec的dbo.usp_step_one

打印'步骤一1 '

 

exec的dbo.usp_step_one

打印'步骤一2 '

 

exec的dbo.usp_step_two

打印'步骤2 1 '

凯明

 

降程序dbo.usp_step_one

降程序dbo.usp_step_two

 

2000年将进程的sql这批没有错误,但数据库2005年将得到您的结果如下:

 

步骤1 1

讯息2714 ,层级16 ,状态4 ,程序usp_step_one , 6号线

已经有一个对象命名为' pk_id '在数据库中。

味精1750年,层级16 ,状态0 ,程序usp_step_one , 6号线

无法创建约束。 见以前的错误。

 

问题是在临时表缓存在交易。 在sql 2000年它一直使用当地的气温将下降表格尽快为他们摆脱范围。 在sql 2005年,下降是推迟到了交易(回滚/承诺) 。 你可以找到一些更详细的气温表缓存这里 作为一种替代方法您可以:

-           使用表变量不是临时表

-           避免命名约束建立临时物件如

 

创建表#气温(编号中断not null的主键集群, num个中断)

 

期六出版, 2007年4月28日下午8点55的伊戈尔科瓦连科
提起下: sql server 2005中 , tsql , sql server的故障排除

论通知

果您想收到一封电子邮件时,更新了这一职位,请先注册这里

阅这个帖子的评论使用的rss

克里斯说:

么是表变量? 能否详细说明。

谢。

2007年4月28日下午9时33分

伊戈尔科瓦连科说:

meen您可能会尝试使用类似的东西

明@临时表(编号中断not null的主键, num个中断)

2007年4月29日下午6时53分

迈克说:

们遇到了同样的事情在我们的生产代码。 很讨厌的追踪,因为它们是嵌套存储过程使用相同的#表名称不同模式(不是我的设计) 。 个事情让似乎类似于c #和垃圾-延迟。

07年6月20号上午10点29分

菲策说:

不是使用一个主键,可以考虑使用的关键和群集的名称之前的#

建群集索引[ # temp_cidx ]对#气温

[编号]升序

)与( sort_in_tempdb =关闭, drop_existing =关闭, ignore_dup_key =关闭,在线=关闭)在[原]

不会有主键约束功能,但您将受益于索引和统计信息。

2007年8月3日上午07时44

瑞安说:

大的建议。 有这同样的问题,但是不幸的是,对我来说,额外的挑战,我国集群的pk关键,必须在2栏,在这种情况下你的名字有约束。 了避免命名冲突的约束我的解决办法是动态执行ddl代码来创建表,这样我创建了一个唯一约束的名字就飞。 必须执行动态sql ,但有时这就是工作。 与您的最终的pk限制,也没有命名冲突。

报@ createstring nvarchar ( 512 )

@ createstring = n'create表# #气温

( [ id_one ]国际not null的, [ id_two ]国际not null的, [ num个]诠释,

束[ pk_id_ ' +铸铁( newid ( )为nvarchar ( 50 ) ) + ' ]主键集群

( [ id_one ] , [ id_two ] )与( ignore_dup_key =关闭) )在[原]

层的sp_executesql @ createstring

2007年12月14号上午10点28分

表评论

必填
(可选
必填
提交

于伊戈尔科瓦连科

已经在1991年开始,因为我的运营商在unix和c的发展。现在我在微软顾问服务,俄罗斯。 的领域的经验-数据库及olap技术。 一直在与微软的工具超过15年,从学会5.0和快速ç 2.51通过(视觉)数据库,用vb , c #中... 是,我的使命是sql 。 正说,我有足够的知识都甲骨文( 8 9.i )和微软db技术,但它向我很难涵盖:-) 。 真正的数据仓库的经验开始,其中一个最大的数据仓库实施的使用oracle 9i数据库,俄罗斯到2002年。 然,我也执行了第一部分的bi项目的顶部德国之声与使用sql 2000 &的crystal reports 。 此之后的一年我是一个seniour开发,在线服务,在戴尔英国布拉克内尔(的c + + / vb的/甲骨文/数据库/ asp )的。 2003年,我有点累了高科技世界,并决定加入德勤,莫斯科,在那里我是一名财务分析师,会员的业务总监组。 真的错过了一半的资讯科技知识这个时间(数据库及晶体是唯一有用的) ,但现在我完全知道“地下”的任何一家大的咨询公司4 ,预算编制和管理过程的细节,法国电信,综合利用,选择分析.. .. 狱,真正会计地狱。 很高兴能设计和执行我的第一次(也是最后)项目使用cognos公司内啡肽工具。 至2005年底,我所雇用:-)我最喜欢的公司,微软和现在我与我最喜爱的工具: sql server中。 持长话短说:-) 。

博客

  • 电邮
  • 友情链接

合供稿

  • 2.0
  • 原子1.0

近的帖子

  • 2000年数据库迁移到sql 2005年:临时表重用问题。
  • 数据库2000年至2005年移民:执行计划改变的问题。
  • 如何避免1000年的行查询时限制的active directory ( ad )的从sql 2005使用自定义
  • 开关使用的范围内执行为... 并非总是开关实际上您希望。
  • 变通“无法设置默认模式为一组。 ”

  • 数据库使用clr
  • sql server 2005中
  • sql server 2005的管理
  • sql server 2005的安全
  • sql server的管理
  • sql server的故障排除
  • tsql

locations of visitors to this page

  • 2007年4月( 2 )
  • 2007年3月( 2 )
  • 2007年1月( 3 )
  • 2006年12月( 1 )

个人 | 法律 | 联系我们 | 的msdn闪光通讯
© 2009年微软公司。 all rights reserved. terms of use | trademarks | privacy statement保留所有权利。 使用条款 | 商标 | 隐私权声明
microsoft
页面视图跟踪
bodyimagehealth.org -..
珍妮的身体电影评论,图片,拖车 - 烂番茄..
墨镜的机构规格
身体与精神的灵魂博览网络社区整体精神网页目录..
'我的身体' - 一wun..
防弹衣空白点是世界的防弹衣的领先制造商为执法..
解剖学委员会的名单身体捐献项目..
身体基础
身体的谎言 - 电影预告片 - 的itune..
17身体和平条约- seventeen.c..
2012-2-8 18:45:56
N
oyayiya
hhyy 机北