2017-04-05 12 views
1

私はマルチテナントデータベースを持っています。 共有データベースにはすべてのテナント情報を保持するテナント設定テーブルがありますテナントデータベースとコアデータベースとの接続方法

各テナントデータベースには挿入トリガがあり、コアデータベースにテナントIDを関連付けて挿入します。

私は、プロセスを実行したデータベースに基づいてテナントIDを設定できるように、どのテナントデータベースから挿入が来たのかを知る必要があります。

私が依存できる各データベースに関連する一意のIDはありますか。 ..

+0

テナント固有のレコードごとにコアDBに新しいレコードを作成する理由を教えてください。データを挿入しているエンティティを知っている場合は、コンテキストからテナントについて明らかに知っておく必要があります – Saravanan

+0

実際にはSQLトリガです。新しいレコードがテーブルに追加された場合にのみ起動されますテナントデータベース このトリガが起動すると、コアDB(後で処理するタスクテーブル)に新しいレコードを追加する必要があります。このタスクは、このタスクがどのテナントから来たのかを理解できるようにテナントIDを格納します。それを処理する場所 –

答えて

1

あなたがSQL2008以降を使用している場合は、データベースを識別するためにDB_IDまたはDB_NAMEのいずれかを使用することができます。

SELECT DB_ID() "Id", DB_NAME() "Name" 

あなたがDB_IDを使用し、使用できるレポートのデータベース名を表示したい場合は:

SELECT DB_NAME(3) -- i.e. DB_NAME(DB_ID()) 
+0

'SELECT name" Name "、database_id" Id "FROM sys.databases' –

+0

ありがとうございました。 –

関連する問題