在SQL Server啟動(dòng)時(shí)自動(dòng)執(zhí)行存儲(chǔ)過(guò)程。第2/2頁(yè)
USE MASTER
GO
CREATE DATABASE SERVER_METRICS
GO
USE SERVER_METRICS
GO
CREATE table DBO.SERVER_STARTUP_LOG
(
LOGID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
START_TIME DATETIME NOT NULL
CONSTRAINT DF_START_TIME DEFAULT GETDATE()
)
GO
USE MASTER
GO
CREATE PROCEDURE DBO.LOG_SERVER_START
AS
SET NOCOUNT ON
PRINT '*** LOGGING SERVER STARTUP TIME ***'
INSERT INTO SERVER_METRICS.DBO.SERVER_STARTUP_LOG DEFAULT VALUES
GO
既然必要的對(duì)象已經(jīng)創(chuàng)建,那么我們需要在服務(wù)器啟動(dòng)時(shí)把創(chuàng)建的存儲(chǔ)過(guò)程設(shè)置為自動(dòng)啟動(dòng)。執(zhí)行下面的查詢(xún),我們可以看到sp_configure高級(jí)選項(xiàng)'scan for startup procs'需要被設(shè)置。這些操作不需要手動(dòng)去做,運(yùn)行sp_procoption會(huì)自動(dòng)為你設(shè)置。
USE MASTER
GO
SELECT VALUE, VALUE_IN_USE, DESCRIPTION
FROM SYS.CONFIGURATIONS
WHERE NAME = 'scan for startup procs'
GO

現(xiàn)在,我們可以用sp_procoption標(biāo)志自動(dòng)存儲(chǔ)的過(guò)程。
USE MASTER GO EXEC SP_PROCOPTION LOG_SERVER_START, 'STARTUP', 'ON' GO |
重新運(yùn)行我們的配置檢查,現(xiàn)在我們可以看到,服務(wù)器配置成查看啟動(dòng)過(guò)程(VALUE = 1),但是運(yùn)行值目前實(shí)際上仍然設(shè)置成沒(méi)有查看啟動(dòng)過(guò)程(VALUE_IN_USE = 0)。我們需要重新啟動(dòng)SQL server服務(wù)來(lái)使改動(dòng)生效。
USE MASTER GO SELECT VALUE, VALUE_IN_USE, DESCRIPTION FROM SYS.CONFIGURATIONS WHERE NAME = 'scan for startup procs' GO |

如果我們重啟SQL Server服務(wù),我們會(huì)看到配置值現(xiàn)在生效了?!?/P>

此外,查看之前創(chuàng)建的SERVER_STARTUP_LOG表,我們看到服務(wù)器啟動(dòng)時(shí)間已經(jīng)被記錄到表中。
USE SERVER_METRICS GO SELECT * FROM SERVER_STARTUP_LOG GO |

最后,查看SQL server錯(cuò)誤日志也可以證明這個(gè)存儲(chǔ)過(guò)程是自動(dòng)運(yùn)行的。
USE MASTER GO EXEC XP_READERRORLOG GO |

現(xiàn)在,讓我們把自動(dòng)執(zhí)行服務(wù)關(guān)掉,下次SQL Server啟動(dòng)時(shí),這個(gè)存儲(chǔ)過(guò)程將不會(huì)運(yùn)行。
USE MASTER GO EXEC SP_PROCOPTION LOG_SERVER_START, 'STARTUP', 'OFF' GO |
如果你不確定你創(chuàng)建的哪個(gè)存儲(chǔ)過(guò)程已經(jīng)被標(biāo)成自動(dòng)執(zhí)行,你可以運(yùn)行以下的查詢(xún):
SELECT ROUTINE_NAME FROM MASTER.INFORMATION_SCHEMA.ROUTINES WHERE OBJECTPROPERTY(OBJECT_ID(ROUTINE_NAME),'ExecIsStartup') = 1 |
有件事你必須意識(shí)到:刪除和重新創(chuàng)建標(biāo)記的存儲(chǔ)過(guò)程將會(huì)要求重新運(yùn)行sp_procoption。刪除一個(gè)存儲(chǔ)過(guò)程會(huì)導(dǎo)致存儲(chǔ)過(guò)程變成“沒(méi)有標(biāo)記”的自動(dòng)執(zhí)行。如果你刪除存儲(chǔ)過(guò)程但是不打算重新創(chuàng)建它,那么系統(tǒng)配置設(shè)置'scan for startup procs'將會(huì)被遺棄成“on”,直到你通過(guò)sp_configure手動(dòng)把它設(shè)置為“off”或者使用sp_procoption把存儲(chǔ)過(guò)程的自動(dòng)執(zhí)行關(guān)掉。把存儲(chǔ)過(guò)程自動(dòng)執(zhí)行關(guān)掉或啟動(dòng)的過(guò)程會(huì)保持系統(tǒng)配置設(shè)置自動(dòng)執(zhí)行。
- 批量執(zhí)行sql語(yǔ)句的方法
- 提高SQL的執(zhí)行效率的ASP的五種做法
- asp在線執(zhí)行sql語(yǔ)句的函數(shù)
- 為什么ASP中執(zhí)行動(dòng)態(tài)SQL總報(bào)錯(cuò)誤信息?提示語(yǔ)句語(yǔ)法錯(cuò)誤
- mysql 顯示SQL語(yǔ)句執(zhí)行時(shí)間的代碼
- php執(zhí)行sql語(yǔ)句的寫(xiě)法
- 高級(jí)MySQL數(shù)據(jù)庫(kù)面試問(wèn)題 附答案
- sql面試題(查看數(shù)據(jù)中指定幾行記錄)
- 一道sql面試題附答案
- 騰訊面試:一條SQL語(yǔ)句執(zhí)行得很慢的原因有哪些?---不看后悔系列(推薦)
相關(guān)文章
分享一下SQL Server執(zhí)行動(dòng)態(tài)SQL的正確方式
這篇文章主要介紹了SQL Server執(zhí)行動(dòng)態(tài)SQL正確方式,需要的朋友可以參考下2017-06-06
Mybatis4 之Mybatis動(dòng)態(tài)sql的實(shí)現(xiàn)代碼
這篇文章主要介紹了Mybatis4 之Mybatis動(dòng)態(tài)sql的實(shí)現(xiàn)代碼,本文給大家提到了靜態(tài)sql與動(dòng)態(tài)sql有什么區(qū)別,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
SqlServer中查看當(dāng)前Open的Cursor方法
這篇文章主要介紹了SqlServer中查看當(dāng)前Open的Cursor方法,本文為了解決A cursor with thename ' ' already exists總結(jié)的幾個(gè)方法,需要的朋友可以參考下2015-07-07
SQL?server修改表錯(cuò)誤提示:阻止保存需要重新創(chuàng)建表的更改解決辦法
這篇文章主要給大家介紹了關(guān)于SQL?server修改表錯(cuò)誤提示:阻止保存需要重新創(chuàng)建表的更改的解決辦法,文中將解決的辦法介紹的非常詳細(xì),對(duì)同樣遇到的朋友具有一定的參考解決價(jià)值,需要的朋友可以參考下2024-06-06
關(guān)于SQL Server加密與解密的問(wèn)題
這篇文章主要介紹了SQL Server加密與解密的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
通過(guò)T-SQL語(yǔ)句創(chuàng)建游標(biāo)與實(shí)現(xiàn)數(shù)據(jù)庫(kù)加解密功能
這篇文章介紹了通過(guò)T-SQL語(yǔ)句創(chuàng)建游標(biāo)與實(shí)現(xiàn)數(shù)據(jù)庫(kù)加解密功能的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03
Hive-SQL查詢(xún)連續(xù)活躍登錄用戶(hù)思路詳解
這篇文章主要介紹了Hive-SQL查詢(xún)連續(xù)活躍登陸的用戶(hù),活躍用戶(hù)這里是指連續(xù)2天都活躍登錄的用戶(hù),本文給大家分享解決思路及sql語(yǔ)句,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12
sql?server如何去除數(shù)據(jù)中的一些無(wú)用的空格
這篇文章主要介紹了sql?server去除數(shù)據(jù)中的一些無(wú)用的空格,本文給大家提到了一些常用的函數(shù),結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05

