web-dev-qa-db-ja.com

データ型を作成してすべてのデータベースで使用できるようにする方法

Masterデータベースにストアドプロシージャを作成し、自分のデータベースのいずれかからそれを実行したい場合は、次のリンクをたどるだけです。

すべてのデータベースでプロシージャを使用可能にする

それは私にこのコード例を与えます:

enter image description here

上記の例に従うだけで、任意のデータベースからプロシージャを呼び出すことができます。

マスターでテーブルデータ型を作成した場合、どうすればデータベースで使用できますか?

use master

        IF NOT EXISTS (select * from sys.types where name = 'theReplicatedTables') 
                CREATE TYPE theReplicatedTables AS TABLE 
                (  OBJ_ID INT NOT NULL,
                  PRIMARY KEY CLUSTERED (OBJ_ID)
                );

use APIA_Repl_Sub
go
declare @the_tables [dbo].[theReplicatedTables]

enter image description here

7

テーブル型でそれを行う方法はありません。それをすべてのデータベースに複製する必要があります。ただし、新しいデータベースの作成中にこのテーブルタイプを使用できるようにする場合は、モデルデータベースに追加するだけです。テーブル値パラメーターの使用にはいくつかの制限があります。データベース間でテーブル値パラメーターを使用することもできません。詳細を確認してください こちら

6
Danilo Braga

タイプには、データベースのしきい値を超える機能や、システムとしてマークする機能はありません。したがって、使用する各データベースでそのタイプを作成する必要があります。 (私はマスターのデータや型などに依存することに大いに熱心ではありません。別のシステムに移動すると消えてしまうからです。)

既存のデータベースの場合は、ループでタイプを作成するだけです。新しいデータベースの場合(CREATE DATABASEを使用)、modelにタイプを作成します。

5
Aaron Bertrand