MS SQLサーバーに同じ構造の2つのデータベースがあります。
すべてのビューを別のデータベースにコピーしたい。
DTSで)データのエクスポート機能を使用しようとしました(テーブルオブジェクトで機能します)。
しかし、SQLを実行し、テーブルオブジェクトを作成します。
ビューをコピーしてデザインビューで開くことができるようにするだけでは実行したくありません。
宛先データベースに新しいビューを作成して、ソースデータベースのビューのSQLクエリをコピーし、ビューを保存しようとしました。それは私が望むものとまったく同じように機能しますが、私にはビュー数とコピー数があります!
データベースを右クリックして、「タスク」->「スクリプトの生成」と言います。 SQL Server Management Studioは、CREATEスクリプトを生成できます。
次に、このスクリプトをコピーして、ターゲットサーバー/データベースで実行します。
私はこれが非常に遅い答えであることを知っていますが、これは一部の人にとって役立つかもしれないと思います(SQLサーバー管理スタジオのようなGUIがない場合)
select *
from INFORMATION_SCHEMA.VIEWS
ここでは、SQLサーバーで「view_definition」という名前の列を取得します(これは他のベンダーのデータベースでも機能します)
データベースを右クリックし、[タスク]、[スクリプトの生成]の順に選択します。これにより、データベース内のすべてのビューを含む単一のスクリプトを生成できます。
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;
Visual Studioにアクセスでき、データベースプロジェクトタイプがある場合、1)含まれているすべてのddl、ビュー、テーブルをインポートする2)これらを統合ソース管理に簡単に追加する3)全体または一部を新しいデータベースに移行する
データベースプロジェクトを最初に作成した後、SQL Serverインスタンスとデータベース名への接続を求められます。インポートが完了すると、データベース全体のddlは、SSMSツリーと非常によく似たツリーで使用できますが、それが派生したオブジェクトではなくDDLファイルが含まれます。