2017-11-30 5 views
1

背景: データベースは当初、共有サーバー上の第三者ホスティング会社によってホストされていました。データベースダイアグラムを作成する権限がありませんでしたので、簡単に解決できるように.\sqlexpressにダイアグラムを作成してください。今私たちのデータベースは私たち専用のサーバー上にあるので、私たちは(唯一の理由ではなく)図を作成する権限を持っています。異なるサーバーからデータベースダイアグラムを正常に移行/コピーする方法

これで、再作成することなくダイアグラムをsqlexpressから新しいサーバーに移行したいと考えています。だからthis question私はSELECT * FROM localdb.dbo.sysdiagrams私は必要な図が見つかりましたし、INSERT INTO newdb.dbo.sysdiagrams VALUES (diagramValuesHere)を実行し、すべての値をコピーして貼り付けて行った。これは私がそれを見るために行くときを除いて、このメッセージを得る以外は図を作成したように見えます。

docfileが壊れています。 (MSビジュアルデータベースツール)

Error Image

私はそれを考えることができる唯一のことは、問題を引き起こしていることは、SQL Serverのバージョンが異なっているということです。

SQLEXPRESS - Microsoft SQL Serverの2012(SP3-GDR)(KB4019092) - 11.0.6251.0(X64)2017年7月7日午前七時14分24秒著作権(c)マイクロソフトコーポレーションエクスプレス版(64ビット)上Windows NT 6.3(ビルド 15063:)

NEWSERVER - Microsoft SQL Serverの2014(SP2-CU7)(KB4032541) - 12.0.5556.0(X64)2017年8月17日12時07分38秒著作権(c)マイクロソフトコーポレーションのWeb版(64ビット)上Windows NT 6.3( 9600をビルドします)図は、おそらくMSSQLのインスタンス間で互換性がありませんので

答えて

0

一方、マイクロソフトは、1つのMSSQLのバージョンと以前のものとの互換性を提供します。一方

、彼らは次のバージョンに図をアップグレードするための機能を提供します:データベースを展開し、オブジェクトエクスプローラから、レガシーデータベースダイアグラム

  • をアップグレードするにはhttps://technet.microsoft.com/en-us/library/ms190628(v=sql.110).aspx

    を。

  • データベースの下にある[データベース図]ノードを展開します。
  • データベースダイアグラムを設定するかどうかを確認するメッセージが表示されたら、はいを選択します。
  • これは、データベースに格納されている図をアップグレードします。
+0

図は、ダウングレードする必要はないでしょうか?それは2014年に作成され、2012年にそれを表示しようとしているので、 – WhatsThePoint

+0

私はあなたがダイアグラムをダウングレードすることはできないと思っています。いずれにしても、 "NEWSERVER"(これは新しいものと仮定しました)をSQL Server 2014で使用しました。また、ダイアグラムを持っていたExpressサーバも2012インスタンスでした。 –

+0

あなたは正しいバージョンが混在していて、どちらのバージョンでも動作しています – WhatsThePoint

0

新しいデータベースのダイアグラムを有効にする:

「データベースダイアグラム」フォルダに新しいデータベースをクリックで。 SQL Server Management Studioは、図を表示するように促します。 OKをクリックすると、データベースにsysdiagramsテーブルが作成されます。その後

次のコマンドを実行します。

IF EXISTS (SELECT name FROM sys.objects WHERE object_id = OBJECT_ID(N'sysdiagrams') AND type in (N'U',N'PC')) 
    DROP TABLE sysdiagrams 
GO 


CREATE TABLE [dbo].[sysdiagrams](
    [name] [sysname] NOT NULL, 
    [principal_id] [int] NOT NULL, 
    [diagram_id] [int] IDENTITY(1,1) NOT NULL, 
    [version] [int] NULL, 
    [definition] [varbinary](max) NULL, 
PRIMARY KEY CLUSTERED 
(
    [diagram_id] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY], 
CONSTRAINT [UK_principal_name] UNIQUE NONCLUSTERED 
(
    [principal_id] ASC, 
    [name] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] 
GO 

EXEC sys.sp_addextendedproperty @name=N'microsoft_database_tools_support', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'sysdiagrams' 
GO 


SELECT name, principal_id,[version], [definition] 
     FROM olddb.dbo.sysdiagrams -- OLD Server Database Diagram 

INSERT INTO newdb.dbo.sysdiagrams 
    SELECT name, principal_id,[version], [definition] 
+0

彼らは別々の接続になっています – WhatsThePoint

+0

OLDサーバーデータベースSELECT名、principal_id、[バージョン]、[定義] FROM olddb.dbo.sysdiagrams.And出力をINSERTデータINTO新しいサーバーのデータベース –

+0

thats何をしてエラーが発生しました – WhatsThePoint

関連する問題