我正在使用SQL Server 2008 R2。如何在使用其他數據庫時搜索數據庫中的函數?
假設我有一些用戶數據庫。我想寫一個腳本來告訴我哪個用戶數據庫有一個名稱爲dbo.udf_GetEmployeeRate()的函數。
該腳本可針對任何數據庫運行。
到目前爲止,我已經通過所有的用戶數據庫寫劇本循環,並在循環中的一個變量得到數據庫名稱:
declare @v_database_name varchar(256)
declare @v_function_name_to_search varchar(25)
select @v_function_name_to_search = 'udf_GetEmployeeRate'
declare c_db cursor read_only local for
select name
from sys.databases
where name not in ('master', 'tempdb', 'model', 'msdb', 'ReportServer', 'ReportServerTempDB') and is_distributor = 0
order by name
open c_db
while 1 = 1
begin
fetch from c_db into @v_database_name
if @@FETCH_STATUS <> 0
break
select @v_database_name '@v_database_name'
end
close c_db
deallocate c_db
現在的問題是如何在數據庫中找到函數名其名稱在@v_database_name
變量中。
我該怎麼做?
,你可以使用'sys.all_objects'視圖,數據庫的前綴:'SELECT * FROM DatabaseName。[sys]。[all_objects] WHERE type_desc LIKE'%function%'' – Lamak