0
我有一個函數返回SQL Server中的單個行。現在我在該服務器上有幾個(大約幾百個)數據庫,具有相同的表結構。我想在所有數據庫上運行該功能。是否有必要在每個數據庫中創建函數,還是有其他方法?如何在多個SQL Server數據庫上運行函數?
這是在SQL Server 2005,順便說一句。
我無權發佈實際功能,但它只是一個返回行的SQL Server函數。同樣的事情也該
ALTER FUNCTION [dbo].[getTotalOrdersByProductID](@ProductID bigint, @month varchar(100), @year varchar(100))
RETURNS @retTotalOrder TABLE
(
ProductID BIGINT primary key,
total int
)
AS
BEGIN;
INSERT @retTotalOrder
SELECT ProductID, count(*) AS total
FROM
PRODUCTS
WHERE PRODUCTS.orderdate BETWEEN firstDayOfMonth(@month, @year) AND lastDayOfMonth(@month, @year)
GROUP BY ProductID
RETURN
END;
你能告訴你功能嗎?你有什麼嘗試? – Ofiris
我試過從函數內部執行'use [dbname]'語句,這是行不通的。我也嘗試從函數內部使用EXEC(@sql),並嘗試從EXEC內部執行'use database',甚至嘗試將數據庫名稱連接到EXEC(@sql)內部表的所有引用,不工作 - EXEC()不允許在SQL Server函數 –
的內部..我只是最終分配了所有數據庫中的函數。光標貫穿數據庫列表並沒有太長的時間。儘管引用了第n個引號。 –