web-dev-qa-db-ja.com

あるデータベースから別のデータベースにビューをコピーする方法

MS SQLサーバーに同じ構造の2つのデータベースがあります。

すべてのビューを別のデータベースにコピーしたい。

DTSで)データのエクスポート機能を使用しようとしました(テーブルオブジェクトで機能します)。

しかし、SQLを実行し、テーブルオブジェクトを作成します。

ビューをコピーしてデザインビューで開くことができるようにするだけでは実行したくありません。

宛先データベースに新しいビューを作成して、ソースデータベースのビューのSQLクエリをコピーし、ビューを保存しようとしました。それは私が望むものとまったく同じように機能しますが、私にはビュー数とコピー数があります!

23
Vikas

データベースを右クリックして、「タスク」->「スクリプトの生成」と言います。 SQL Server Management Studioは、CREATEスクリプトを生成できます。

次に、このスクリプトをコピーして、ターゲットサーバー/データベースで実行します。

41

私はこれが非常に遅い答えであることを知っていますが、これは一部の人にとって役立つかもしれないと思います(SQLサーバー管理スタジオのようなGUIがない場合)

select * 
from INFORMATION_SCHEMA.VIEWS

ここでは、SQLサーバーで「view_definition」という名前の列を取得します(これは他のベンダーのデータベースでも機能します)

9

データベースを右クリックし、[タスク]、[スクリプトの生成]の順に選択します。これにより、データベース内のすべてのビューを含む単一のスクリプトを生成できます。

7
Andomar

1つのビューをコピーする単純なコード

USE DatabaseA;
GO

DECLARE @sql NVARCHAR(MAX);

SELECT @sql = definition
FROM sys.sql_modules
WHERE [object_id] = OBJECT_ID('dbo.ViewName');

EXEC DatabaseB..sp_executesql @sql;
2
Salem Ahmed

Visual Studioにアクセスでき、データベースプロジェクトタイプがある場合、1)含まれているすべてのddl、ビュー、テーブルをインポートする2)これらを統合ソース管理に簡単に追加する3)全体または一部を新しいデータベースに移行する

データベースプロジェクトを最初に作成した後、SQL Serverインスタンスとデータベース名への接続を求められます。インポートが完了すると、データベース全体のddlは、SSMSツリーと非常によく似たツリーで使用できますが、それが派生したオブジェクトではなくDDLファイルが含まれます。

1
Thronk