4

MS SQL Server Management Studio 2008を使用しています。db(たとえば、ip 10.16.17.10でdb1と呼ばれます)と2番目
のdb(たとえば、ip 10.16.17.25と呼ばれるdb2)があります。

1つのテーブル(およびその内容)をdb1からdb2にコピーしようとしています。
両方にデータベースがあります(ただし、db2では空です)。

問題は、コピー/エクスポート/インポートの方法に関係なく、MS SQL Server Management Studio2008で[テーブル]->[デザイン](db2上)をクリックしたときに設定したオプションに関係なく、常に「IDスペフィケーション:いいえ」と表示されます。 db1テーブルにもそれがあります。

db1から、「タスク」->「エクスポート」->「ソース/db」および「宛先/db」->「マッピングの編集」->「ID挿入を有効にする」に移動してクリックします。

しかし、喜びはありません。常にそれなしでエクスポートします。私はdb2
のIMPORTから同様のことを試みます。COPYを使用する場合も同様です。

私はこれに関するSTACKOVERFLOWの記事の多くを読みました、それらはすべてIDENTITY_INSERT設定をONに設定することを提案しますが、私が以下を実行するとき:

SET IDENTITY_INSERT [dbo].[mytable] ON

テーブルはまだ存在していないか、ID設定なしですでにコピーされているため、エラーを参照してください。

does not have the identity property. Cannot perform SET operation.

db2のプロパティ(データベースプロパティの下)として設定しようとしましたが、コピー/インポート/エクスポートが機能しません。

これまでの多くのStackOverflowの記事はすべて私よりも楽な時間を過ごしているように見えるので、ここで助けていただければ幸いです。

このデータベース内の別の50ほどのテーブルに対してこれを実行することを計画しているので、各テーブルに対してスクリプトを実行する必要がない方法を見つけたいと考えています。

ありがとう

4

4 に答える 4

5

データのエクスポートウィザードを使用してデータをあるテーブルから別のテーブルにコピーするプロセスでは、スキーマのすべての側面(IDや自動インクリメントなど)が複製されるわけではありません。スキーマを複製する場合は、テーブルをcreateステートメントにスクリプト化し、名前をdb2に変更して、それを作成します。次に、ID挿入オプションをオンにしてエクスポート/インポートウィザードを実行し、古いテーブルのスキーマを複製する新しいテーブルに挿入できるようになります。

于 2013-01-29T14:16:25.310 に答える
3

最終的に、MS SQLManagementStudioを使用してこれを整理しました。

データのインポートとデータのエクスポートに関するヘルプを提供してくれた@kevinに感謝します。スキーマは転送されませんが、スキーマが起動したらデータを転送するための最良の手段です。

以下を使用してdbテーブルスキーマをMASSインポート/エクスポートする最良の方法を見つけました(保存されたSQL作成スクリプトをファイルに):

タスク->スクリプトの生成->ファイルするすべてのテーブル->IDがオンの状態

スキーマのdb2で200kbのSQLファイルを実行しました。

次に、db1からdb2へのデータのインポートを実行しました。

完了し、すべてのIdentity_Insertsが維持されます。

手伝ってくれてありがとう

于 2013-01-29T14:53:33.483 に答える
1

エラーメッセージによると、テーブルに列がないと思いますIDENTITY。を実行[dbo].[mytable]する前に、それが存在することを確認してください。IDENTITY columnSET IDENTITY_INSERT

SET IDENTITY_INSERT [dbo].[mytable] ON

DEMO1 ( ID列がないときにIDをオンに設定しようとしています)

--Error    
'Table 'T' does not have the identity property. Cannot perform SET operation.: SET IDENTITY_INSERT T ON'

DEMO2 ( ID列があるときにIDをオンに設定しようとしています)

--No Errors
于 2013-01-29T14:03:00.443 に答える
1

次の手順に従います。

db1から、「タスク」->「エクスポート」->「ソース/db」および「宛先/db」->「マッピングの編集」->「ID挿入の有効化」および「SQLの編集」に移動します->クエリが表示されますテーブルの構造。

たとえばのクエリで。ID int NOT NULL、次のステップを実行しますID int NOT NULL IDENTITY(1,1)次に進みます。

私はそれがうまくいくに違いない。

于 2013-01-29T14:29:42.730 に答える