- 2013-09-29国务院近日印发了上海自由贸易试验区总体方案,自贸区...
- 2013-09-29移动医疗大潮袭来,看着是肉 咬下去是骨头。
- 2013-09-28安卓阵营集体遭360洗劫,华为三星步步高悉数中枪
- 2013-09-28小米MIUI团队声明称应用商店内全线下架360产品
- 2013-09-25阿里巴巴与云存储应用酷盘的收购谈判行已结束,阿里巴...
- 2013-09-25苹果称其全新Touch ID指纹扫描安全系统可以“十分安全...
- 2013-09-24上海自贸区不设防火墙 脸谱和推特等解禁
- 2013-09-24Fairfax Financial计划收购黑莓:每股9美元 总价47亿美...
- 2013-09-24消息称苏宁洽购PPTV进入尾声 金额约为4亿美元
- 2013-09-238月25日凌晨,中国.CN域名解析出现大规模解析故障,攻击...
出现两个重名的dtproperties表
发表于:2013-08-27|
次阅读|
作者:藕码网
摘要:出现两个重名的dtproperties表
客户的数据库表所有者用的是数据库名,而且数据库里有两个dtproperties表,在企业管理器中类型显示都是系统的,但所有者分别为数据库名和dbo两种,数据库名.dtproperties中含有客户需要的数据!现在要把数据从原数据库导入到另外的新数据库。注:SQL Server 2000中,当新建一个空的数据库后,在查询分析器中执行。
sp_database 或select * from sysobjects where xtype = 'U' 有可能得到dtproperties表,并显示为用户表,但是在企业管理器中,dtproperties却显示为系统表,网上解释为微软的bug。dtproperties表在企业管理器中无法删除;在对象浏览器中可以直接删除,或者执行drop table dtproperties语句删除。
数据导到新数据库需要把所有者改为dbo,但如果数据库名.dtproperties表改为dbo.dtproperties,会与原有的dbo.dtproperties表重名,会报错!
解决方法:
方法一:
把数据导入新数据库后,直接把表的所有者改为新数据库名,这样就不会与系统的dbo.dtproperties表重名。注:此方法没有解决之前说的需要解决的问题,而且以后换到话还会再出现问题,尽量不要使用,不推荐。
方法二:
因为dtproperties表在查询分析器中显示为用户表,但是在企业管理器中,dtproperties却显示为系统表,所以在企业管理器里删除不了但在查询分析器中却可以删除,因此可以先把dbo.dtproperties删除后再批量修改所有者。测试是成功的,推荐此方法。
方法三:
因为表dbo.dtproperties中没有数据,而原数据库名.dtproperties表中有客户的需要的数据。我们可以把数据库名.dtproperties表中的数据导入dbo.dtproperties表中。这样我们就可以避免修改dtproperties表的所有者!【注】把一个表的数据导入到另一个表的方法:
Insert INTO 新表所有者.新表名(非自动增长字段,...) Select (非自动增长字段,...) FROM 数据库名.原表所有者.原表名;如果导入过程有报错:服务器: 消息 8101,级别 16,状态 1,行 1
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'conrecled' 中为标识列指定显式值。则需要先执行SET IDENTITY_INSERT 新表名 ON,执行完导入语句后再执行SET IDENTITY_INSERT 新表名 off。
sp_database 或select * from sysobjects where xtype = 'U' 有可能得到dtproperties表,并显示为用户表,但是在企业管理器中,dtproperties却显示为系统表,网上解释为微软的bug。dtproperties表在企业管理器中无法删除;在对象浏览器中可以直接删除,或者执行drop table dtproperties语句删除。
数据导到新数据库需要把所有者改为dbo,但如果数据库名.dtproperties表改为dbo.dtproperties,会与原有的dbo.dtproperties表重名,会报错!
解决方法:
方法一:
把数据导入新数据库后,直接把表的所有者改为新数据库名,这样就不会与系统的dbo.dtproperties表重名。注:此方法没有解决之前说的需要解决的问题,而且以后换到话还会再出现问题,尽量不要使用,不推荐。
方法二:
因为dtproperties表在查询分析器中显示为用户表,但是在企业管理器中,dtproperties却显示为系统表,所以在企业管理器里删除不了但在查询分析器中却可以删除,因此可以先把dbo.dtproperties删除后再批量修改所有者。测试是成功的,推荐此方法。
方法三:
因为表dbo.dtproperties中没有数据,而原数据库名.dtproperties表中有客户的需要的数据。我们可以把数据库名.dtproperties表中的数据导入dbo.dtproperties表中。这样我们就可以避免修改dtproperties表的所有者!【注】把一个表的数据导入到另一个表的方法:
Insert INTO 新表所有者.新表名(非自动增长字段,...) Select (非自动增长字段,...) FROM 数据库名.原表所有者.原表名;如果导入过程有报错:服务器: 消息 8101,级别 16,状态 1,行 1
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'conrecled' 中为标识列指定显式值。则需要先执行SET IDENTITY_INSERT 新表名 ON,执行完导入语句后再执行SET IDENTITY_INSERT 新表名 off。
注:本站部分信息可能源于互联网分享,如有侵权,请告知,我们将及时删除!
上一篇:SQL Server2005的master数据库系统表还原 下一篇:置疑数据库处理
- 用户评论
- 相关文章
-
最新评论
-
暂无关联文章
推荐文章
-
1
使用IIS+Resin来配置J...
本文介绍使用IIS+Resin来配置JSP的运行环境... -
2
MYSQL的主要参数设置(...
MYSQL的主要参数设置(优化) -
3
Linux服务器安全小技巧...
Linux 服务器安全小技巧 -
4
批量修改计算机名
批量修改计算机名 -
5
Linux下安装apache
Linux下安装apache -
6
Windows日志NTFS错误
Windows日志NTFS错误
热门文章榜