Sql-Server

如何創建數據類型並使其在所有數據庫中可用?

  • April 8, 2019

如果我在主數據庫中創建一個儲存過程,並且我想從我的任何數據庫中執行它,我只需點擊此連結:

使過程在所有數據庫中可用

這給了我這個程式碼範例:

在此處輸入圖像描述

只需按照上面的範例,我就可以從任何數據庫呼叫我的過程。

如果我在 master 中創建一個表數據類型,我如何在我的任何數據庫中使用它?

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]

在此處輸入圖像描述

表類型無法做到這一點。您將需要在所有數據庫中複製它。但是,如果您希望在創建新數據庫時使用此表類型,則只需將其添加到模型數據庫中即可。使用表值參數有幾個限制。您甚至不能跨數據庫使用表值參數。在這裡檢查一些細節。

類型無法跨越數據庫門檻值或被標記為系統。因此,您需要在要使用它的每個數據庫中創建該類型。(我不喜歡依賴 master 中的數據或類型之類的東西,因為當你移動到不同的系統時它們會消失。)

對於現有數據庫,您可以在循環中創建類型。對於新數據庫(通過CREATE DATABASE),在 中創建類型model

引用自:https://dba.stackexchange.com/questions/234144