在SQL Server啟動時自動執(zhí)行存儲過程。第1/2頁
更新時間:2008年10月02日 01:02:05 作者:
當(dāng)sql server啟動時,我很想運行一個存儲過程。有沒有一種方法可以在每次SQL Server服務(wù)啟動時都會自動執(zhí)行這個存儲過程呢?
sql Server提供了系統(tǒng)存儲過程sp_procoption,這個存儲過程可以用于當(dāng)SQL Server服務(wù)啟動時指派一個或者多個存儲過程自動執(zhí)行。這是一個很不錯的選擇,它可以用于多種多樣的用途。比如,你可能在你的數(shù)據(jù)庫中有開銷很大的查詢,這個查詢在首次執(zhí)行時會花費一些時間。通過使用sp_procoption,你可以在服務(wù)器啟動時運行這個查詢以此來預(yù)先編譯執(zhí)行計劃,由此,你的某個用戶就不會成為第一個運行這個特殊查詢的不幸的人。我曾經(jīng)用這個功能建立了一個我自己寫的概要分析器服務(wù)器端跟蹤的自動執(zhí)行功能,這個跟蹤功能成為服務(wù)器啟動時被設(shè)置成自動執(zhí)行的存儲過程的一部分。
sp_procoption Parameters
exec sp_procoption @ProcName = ['stored procedure name'],
@OptionName = 'STARTUP',
@OptionValue = [on|off]
以下是sp_procoption存儲過程參數(shù)的解釋:
l 參數(shù)@ProcName的意思是明顯的,它是被標(biāo)記成自動執(zhí)行的過程的名稱。
l 參數(shù)@OptionName是可選用項,唯一有效的選項是STARTUP。
l 參數(shù)@OptionValue切換自動執(zhí)行的開與關(guān)。
使用有特定限制的sp_procoption:
l 你必須以系統(tǒng)管理員的身份登錄服務(wù)器并使用sp_procoption。
l 你只能指派標(biāo)準(zhǔn)存儲過程、擴展存儲過程或者CLR存儲過程來啟動。
l 存儲過程必須在主從數(shù)據(jù)庫上。
l 存儲過程不能要求任何輸入?yún)?shù)或者返回任何輸出參數(shù)。
在下面的例子中,我創(chuàng)建一個存儲過程,每次啟動我的SQL Server實例時,這個存儲過程就自動執(zhí)行。這個存儲過程的目的是在記錄服務(wù)啟動時間的數(shù)據(jù)庫表中寫一行。通過這張數(shù)據(jù)庫表,我產(chǎn)生一個獲得服務(wù)器正常運行時間的想法。以下的腳本創(chuàng)建了一個新的數(shù)據(jù)庫,這個數(shù)據(jù)庫存儲了一張叫做SERVER_STARTUP_LOG的公制表。這張表保留了上次服務(wù)器啟動的日期和時間。一旦建立了這個基本的架構(gòu),我就創(chuàng)建存儲過程,在服務(wù)器啟動時,這個存儲過程將用于把日期和時間插入到表中。注意,存儲過程是在主從數(shù)據(jù)庫上創(chuàng)建的。
復(fù)制代碼 代碼如下:
sp_procoption Parameters
exec sp_procoption @ProcName = ['stored procedure name'],
@OptionName = 'STARTUP',
@OptionValue = [on|off]
以下是sp_procoption存儲過程參數(shù)的解釋:
l 參數(shù)@ProcName的意思是明顯的,它是被標(biāo)記成自動執(zhí)行的過程的名稱。
l 參數(shù)@OptionName是可選用項,唯一有效的選項是STARTUP。
l 參數(shù)@OptionValue切換自動執(zhí)行的開與關(guān)。
使用有特定限制的sp_procoption:
l 你必須以系統(tǒng)管理員的身份登錄服務(wù)器并使用sp_procoption。
l 你只能指派標(biāo)準(zhǔn)存儲過程、擴展存儲過程或者CLR存儲過程來啟動。
l 存儲過程必須在主從數(shù)據(jù)庫上。
l 存儲過程不能要求任何輸入?yún)?shù)或者返回任何輸出參數(shù)。
在下面的例子中,我創(chuàng)建一個存儲過程,每次啟動我的SQL Server實例時,這個存儲過程就自動執(zhí)行。這個存儲過程的目的是在記錄服務(wù)啟動時間的數(shù)據(jù)庫表中寫一行。通過這張數(shù)據(jù)庫表,我產(chǎn)生一個獲得服務(wù)器正常運行時間的想法。以下的腳本創(chuàng)建了一個新的數(shù)據(jù)庫,這個數(shù)據(jù)庫存儲了一張叫做SERVER_STARTUP_LOG的公制表。這張表保留了上次服務(wù)器啟動的日期和時間。一旦建立了這個基本的架構(gòu),我就創(chuàng)建存儲過程,在服務(wù)器啟動時,這個存儲過程將用于把日期和時間插入到表中。注意,存儲過程是在主從數(shù)據(jù)庫上創(chuàng)建的。
相關(guān)文章
insert into tbl() select * from tb2中加入多個條件
insert into tbl() select * from tb2中加入多個條件2009-06-06sql server 還原數(shù)據(jù)庫時提示數(shù)據(jù)庫正在使用,無法進行操作的解決方法
sql server 還原數(shù)據(jù)庫時提示:數(shù)據(jù)庫正在使用,無法進行操作的解決方法2013-03-03sqlserver/mysql按天、按小時、按分鐘統(tǒng)計連續(xù)時間段數(shù)據(jù)【推薦】
最近小編接到這樣的需求,公司需要按天,按小時查看數(shù)據(jù),可以直觀的看到時間段的數(shù)據(jù)峰值。這篇文章主要介紹了sqlserver/mysql按天,按小時,按分鐘統(tǒng)計連續(xù)時間段數(shù)據(jù) ,需要的朋友可以參考下2019-06-06SQL?Server中的XML數(shù)據(jù)類型詳解
本文詳細(xì)講解了SQL?Server中的XML數(shù)據(jù)類型,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05SQLSERVER查詢所有數(shù)據(jù)庫名,表名,和字段名的語句
SQLSERVER查詢所有數(shù)據(jù)庫名,表名,和字段名的語句,需要的朋友可以參考下。2011-12-12