在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)存儲過程、擴(kuò)展存儲過程或者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)存儲過程、擴(kuò)展存儲過程或者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)文章
分享一下SQL Server執(zhí)行動態(tài)SQL的正確方式
這篇文章主要介紹了SQL Server執(zhí)行動態(tài)SQL正確方式,需要的朋友可以參考下2017-06-06
Mybatis4 之Mybatis動態(tài)sql的實現(xiàn)代碼
這篇文章主要介紹了Mybatis4 之Mybatis動態(tài)sql的實現(xiàn)代碼,本文給大家提到了靜態(tài)sql與動態(tài)sql有什么區(qū)別,通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03
SqlServer中查看當(dāng)前Open的Cursor方法
這篇文章主要介紹了SqlServer中查看當(dāng)前Open的Cursor方法,本文為了解決A cursor with thename ' ' already exists總結(jié)的幾個方法,需要的朋友可以參考下2015-07-07
SQL?server修改表錯誤提示:阻止保存需要重新創(chuàng)建表的更改解決辦法
這篇文章主要給大家介紹了關(guān)于SQL?server修改表錯誤提示:阻止保存需要重新創(chuàng)建表的更改的解決辦法,文中將解決的辦法介紹的非常詳細(xì),對同樣遇到的朋友具有一定的參考解決價值,需要的朋友可以參考下2024-06-06
通過T-SQL語句創(chuàng)建游標(biāo)與實現(xiàn)數(shù)據(jù)庫加解密功能
這篇文章介紹了通過T-SQL語句創(chuàng)建游標(biāo)與實現(xiàn)數(shù)據(jù)庫加解密功能的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03
sql?server如何去除數(shù)據(jù)中的一些無用的空格
這篇文章主要介紹了sql?server去除數(shù)據(jù)中的一些無用的空格,本文給大家提到了一些常用的函數(shù),結(jié)合示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05

