国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

SQL2005生成SQL2000腳本的一些解決方法

2024-07-21 02:42:13
字體:
來源:轉載
供稿:網友

下午,客戶問我,關于SQL2005下創建的數據庫,如需要導入到SQL2000下使用要怎么辦。      SQL2005的語法和SQL2000的語法有所不同,試了幾次發現數據庫無法使用備份和附加的方法轉換到SQL2000。必須先轉換成腳本文件,然后在2000中用這個腳本建立目標庫,再用數據導入/導出把數據從2005導到2000即可,按SQL2005提供轉換到SQL2000的方法,經過自定義生成的對象。如果想直接restore或附加應該是不行的, 用腳本+導數據肯定沒有問題。

以下是SQL2005轉到2000的步驟:

1. 生成for 2000版本的數據庫腳本
2005 的manger studio
-- 打開"對象資源管理器"(沒有的話按F8), 連接到你的實例
-- 右鍵要轉到2000的庫
-- 任務
-- 生成腳本
-- 在"腳本向導"的"選擇數據庫"中, 確定選擇的是要轉到2000的庫
-- 勾選"為所選數據庫中的所有對象編寫腳本"
-- 在接下來的"選擇腳本選項"中, 找到"為服務器版本編寫腳本"項, 選擇"SQL Server 2000"
-- 其他選項根據需要設置
-- 最后把腳本保存到一個 .sql 腳本文件
 









2. 在2000中創建目標數據庫
在查詢分析器(或2005的manger studio在打開腳本文件), 連接到SQL Server 2000,執行上面生成的腳本.以創建一個新的數據庫



3. 將數據從2005導到2000
2005 的manger studio
-- 打開"對象資源管理器"(沒有的話按F8), 連接到你的實例
-- 右鍵要轉到2000的庫
-- 任務
-- 導出數據
-- 在"SQL Server 導入和導出向導"的"選擇數據源"步驟中, 確定選擇的是要導出的數據庫
-- 在"選擇目標"步驟中, 連接到 2000, 并選擇步驟2新建的庫
-- 在"選擇源表和源視圖"中, 選擇所有的表
-- 最后完成





以下是SQL2005生成的腳本: 
 
 1  SET ANSI_NULLS ON
 2  GO
 3  SET QUOTED_IDENTIFIER ON
 4  GO
 5  IF NOT EXISTS (Select * FROM sys.objects Where object_id = OBJECT_ID(N'[dbo].[web3_News]') AND type in (N'U'))
 6  BEGIN
 7  Create TABLE [dbo].[web3_News](
 8    [ID] [int] IDENTITY(1,1) NOT NULL,
 9    [Title] [varchar](100) NULL,
10    [Contents] [varchar](250) NULL,
11  CONSTRAINT [PK_web3_News] PRIMARY KEY CLUSTERED 
12  (
13    [ID] ASC
14  )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
15  ) ON [PRIMARY]
16  END
 

再看一下SQL2000生成的的腳本:
 
 1  if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[web3_News]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
 2  drop table [dbo].[web3_News]
 3  GO
 4
 5  Create TABLE [dbo].[web3_News] (
 6    [ID] [int] IDENTITY (1, 1) NOT NULL ,
 7    [Title] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
 8    [Contents] [varchar] (250) COLLATE Chinese_PRC_CI_AS NULL 
 9  ) ON [PRIMARY]
10  GO
11
12  Alter TABLE [dbo].[web3_News] WITH NOCHECK ADD 
13    CONSTRAINT [PK_web3_News] PRIMARY KEY  CLUSTERED 
14    (
15        [ID]
16    )  ON [PRIMARY] 
17  GO

 
把SQL2005下選用生成SQL2000的腳本在SQL2000下使用,結果出現了一些錯誤:



 
      不知道是不是我的方法有問題,居然按微軟的方法生成的腳本還是有錯誤,接下來我把WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]去掉,語法是沒有錯誤了,但還是出現了兩個錯誤,系統提示未能找到存儲過程 'sys.objects',列名 'object_id' 無效,還要把sys.objects替換成dbo.sysobjects,object_id替換成id (把object_去掉)然后再運行才能正常。
 
      這是一個簡單的表,相關定義不多,如果定義約束、因子填充等條件更多錯誤,沒辦法,暫時找不到解決的方法只能手工修改了,一個字,累……
 
      希望有高手們提供更好的方法出來,供大家學習一下!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蕉岭县| 崇义县| 金湖县| 瑞金市| 苏尼特左旗| 三穗县| 宜春市| 陕西省| 泊头市| 芜湖市| 阿拉善左旗| 吐鲁番市| 平江县| 阿拉尔市| 广昌县| 昌吉市| 浑源县| 循化| 广安市| 华宁县| 资源县| 清涧县| 福泉市| 沾化县| 余姚市| 安塞县| 屏南县| 弥勒县| 凉山| 龙游县| 措美县| 双城市| 昌邑市| 栖霞市| 兴安县| 安庆市| 靖西县| 建宁县| 阿图什市| 洪泽县| 金坛市|