2009-09-23 57 views

回答

2

我覺得如果你在碩士(在MSSQL)創建它可以從該實例中的任何其他分貝參考。無論如何,似乎似乎仍然適用於存儲過程。

我要補充一點,如果這只是作品的數據庫都在同一個服務器實例......

你可以寫一個小的應用程序,如果所有400駐留到UDF部署到每個SQL Server實例的主在多臺服務器上。

+0

這是目前我在做什麼(後我發佈的問題)。我想它可能是我猜的最好方法!謝謝 – mrwayne 2009-09-23 05:44:25

0

我只是創建一個動態腳本在每個數據庫上創建它。但在此之後,我會將它放入模態數據庫中,以便所有新數據庫都可以使用它創建。

如果函數被修改,您也可以使用相同的腳本推出更改。

0

我只是找到一些我認爲的方式。某種盜夢空間的;) 使用data_base只能內EXECUTE背景下,所以...

DECLARE @sql NVARCHAR(max) 
DECLARE @innersql NVARCHAR(max) 

DECLARE c CURSOR READ_ONLY 
FOR 
SELECT name FROM sys.databases 

DECLARE @name nvarchar(1000) 

OPEN c 

SET @innersql = 'CREATE FUNCTION Foo(@x varchar(1)) RETURNS varchar(100) AS ' + 
       ' BEGIN RETURN(@x + ''''some text'''') END;' 
--         ^^^^   ^^^^ 
--   every (') must be converted to QUAD ('''') instead of DOUBLE('') !!! 

FETCH NEXT FROM c INTO @name 

WHILE @@FETCH_STATUS = 0 
    BEGIN 
-- create function must be the first statement in a query batch ??? 
-- ok, will be... in inner EXEC... 
    SET @sql = 'USE [' + @name + ']; EXEC (''' + @innersql + ''');' 

    --PRINT @sql 

    EXEC (@sql) 

    FETCH NEXT FROM c INTO @name 
    END 

CLOSE c 

DEALLOCATE c 

UPS,我錯過了 「CLR/.NET」 部分閱讀問題。抱歉。

相關問題