SQL Server 2000导入SQL Server 2005生成脚本的问题
2011-11-27 19:56
344 查看
今天用SQL Server 2005生成了脚本,想导入到SQL Server 2000里面去,运行的时候却发现竟然出现N多的错误!在导出脚本的时候我明明是选择了“为服务器版本编写脚本”为SQL Server 2000啊,但是怎么还是不对呢?
错误展示
在SQL分析的时候出现错误:
消息 170,级别 15,状态 1,第 22 行
第 22 行: '(' 附近有语法错误。
在执行SQL的时候出现错误:
消息 208,级别 16,状态 1,第 1 行
对象名 'sys.objects' 无效。
消息 208,级别 16,状态 1,第 1 行
对象名 'sys.foreign_keys' 无效。
原因其实就是SQL Server 2005与SQL Server 2000的语法不同,暂时icech还没有找到一个简单的转换方法,如果你的语句不多,可以用手动或者替换的方法自动转换一下。具体方法如下:
1、将sys.objects替换成dbo.sysobjects
2、将小写的object_id替换成id
例如:
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[hand]') AND type in (N'U'))
修改成
IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[hand]') AND type in (N'U'))
3、将WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]去掉
注意:我发现这个如果不去掉的话也能成功,但是一些默认的主键就会没有加载成功。
错误展示
在SQL分析的时候出现错误:
消息 170,级别 15,状态 1,第 22 行
第 22 行: '(' 附近有语法错误。
在执行SQL的时候出现错误:
消息 208,级别 16,状态 1,第 1 行
对象名 'sys.objects' 无效。
消息 208,级别 16,状态 1,第 1 行
对象名 'sys.foreign_keys' 无效。
原因其实就是SQL Server 2005与SQL Server 2000的语法不同,暂时icech还没有找到一个简单的转换方法,如果你的语句不多,可以用手动或者替换的方法自动转换一下。具体方法如下:
1、将sys.objects替换成dbo.sysobjects
2、将小写的object_id替换成id
例如:
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[hand]') AND type in (N'U'))
修改成
IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[hand]') AND type in (N'U'))
3、将WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]去掉
注意:我发现这个如果不去掉的话也能成功,但是一些默认的主键就会没有加载成功。
相关文章推荐
- SQL Server 2000导入SQL Server 2005生成脚本的问题
- sql server 2005 数据库 导入 2000时 遇到的问题
- sql server 2000数据导入sql server 2005问题
- SQL Server 2005导入Excel表问题
- 将SQL Server 2005 Express的数据库导入到SQL Server 2000
- SQL Server 2005和SQL Server 2000数据的相互导入(转)
- 推荐优秀的SQL脚本调试工具Embarcadero DBArtisan 可以调试SQL Server 2000/2005 SQL调试工具汇总
- VS.NET 2005连接SQL Server 2000的问题
- SQL Server 2005数据导入到SQL Server 2000中(图解)
- Sql server 2005 导入到 sql server 2000方法
- sql server 2000与sql server 2005关于bit型不兼容的问题
- sql2005生成sql2000脚本的时候出现“User.UserType: NoLogin 不是SQL Server 2005 的有效选项“ 的解决方案
- 在使用Sql server 2005 生成脚本时,出现目标服务器版本不支持该对象或不支持该对象的一个属性。 (Microsoft.SqlServer.Smo)的解决办法
- SQL Server 2000导入数据时遇到的问题
- sql server生成脚本备份数据库——解决数据库版本不兼容问题
- SQL Server 2005和SQL Server 2000数据的相互导入
- sql2005生成sql2000脚本的时候出现“User.UserType: NoLogin 不是SQL Server 2005 的有效选项“ 的解决方案
- SQL Server 2008 转换为 SQL 2005 数据库 脚本生成方式(解决主键、索引、标识等数据库约束丢失)
- PowerDesigner生成SQL Server 2008脚本注释乱码的问题
- sql server 2000中的数据库附加到sql server 2005中会遇到的一些问题