今天用SQL Server 2005生成了腳本,想導(dǎo)入到SQL Server 2000里面去,運行的時候卻發(fā)現(xiàn)竟然出現(xiàn)N多的錯誤!在導(dǎo)出腳本的時候我明明是選擇了“為服務(wù)器版本編寫腳本”為SQL Server 2000啊,但是怎么還是不對呢?
錯誤展示
在SQL分析的時候出現(xiàn)錯誤:
消息 170,級別 15,狀態(tài) 1,第 22 行
第 22 行: '(' 附近有語法錯誤。
在執(zhí)行SQL的時候出現(xiàn)錯誤:
消息 208,級別 16,狀態(tài) 1,第 1 行
對象名 'sys.objects' 無效。
消息 208,級別 16,狀態(tài) 1,第 1 行
對象名 'sys.foreign_keys' 無效。
原因其實就是SQL Server 2005與SQL Server 2000的語法不同,暫時icech還沒有找到一個簡單的轉(zhuǎn)換方法,如果你的語句不多,可以用手動或者替換的方法自動轉(zhuǎn)換一下。具體方法如下:
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]去掉
注意:我發(fā)現(xiàn)這個如果不去掉的話也能成功,但是一些默認(rèn)的主鍵就會沒有加載成功。
