SQL 2012:DBのインポート元のデータスキームを変更します
-
22-10-2019 - |
質問
SQL 2008 R2サーバーからSQL 2012にデータを移行しています。したがって、SQL 2012マシンでSSMインポートデータタスクを使用しています。
テストとして、DBSの1つのデータファイルをコピーし、「添付データベース」とスキーマを最新のSQL Serverデータツールと比較しました。
添付と輸入済みの1つからの違いは、間違っているようです。例として:
添付:
CREATE TABLE [dbo].[DbEventMessages] (
[EventID] INT IDENTITY (1, 1) NOT NULL,
[EntityType] NVARCHAR (MAX) NOT NULL,
[ContactId] INT NOT NULL,
[Action] NVARCHAR (MAX) NOT NULL,
[DateTime] DATETIME2 (7) NOT NULL,
[InnoVersionType] ROWVERSION NULL,
CONSTRAINT [PK_DbDbEventMessages] PRIMARY KEY CLUSTERED ([EventID] ASC)
);
GO
輸入:
CREATE TABLE [dbo].[DbEventMessages] (
[EventID] INT NOT NULL,
[EntityType] NVARCHAR (MAX) NOT NULL,
[ContactId] INT NOT NULL,
[Action] NVARCHAR (MAX) NOT NULL,
[DateTime] DATETIME2 (7) NOT NULL,
[InnoVersionType] ROWVERSION NOT NULL
);
GO
インポートされたスキームは異なります
- キー列のIDプロパティ
- Rowversionは、Not NullからNullに変更されました
- 主なキーの制約がありません
ここで何が問題なのですか?それとも正しく機能していますか?コメントをありがとう..
解決
SQL Server 2008データベースのバックアップを取り、SQL Server 2012で復元します。これは、データベースを移行するためのはるかに高速で信頼できるアプローチです。インスタンス間にファイルを添付しないでください。SQLServer2012はそれらを新しい形式にアップグレードし、SQL Server 2008で再度使用する機能を失います。
一般的なアドバイスとして、移動前の検証手順を含む手順とガイドラインに従うようにしてください。 SQL Server 2012へのアップグレード
データベースに関連するすべてのログイン情報とSQLエージェントジョブを移行してください。
所属していません dba.stackexchange