今天用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]去掉
注意:我發現這個如果不去掉的話也能成功,但是一些默認的主鍵就會沒有加載成功。