天天看點

《PowerShell V3——SQL Server 2012資料庫自動化運維權威指南》——2.14 建立存儲過程

本節書摘來自異步社群出版社《powershell v3—sql server 2012資料庫自動化運維權威指南》一書中的第2章,第2.14節,作者:【加拿大】donabel santos,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

本方案展示了如何用powershell和smo建立加密的存儲過程。

我們要用powershell建立的加密存儲過程的等價t-sql代碼如下:

按照如下步驟使用powershell建立存儲過程uspgetpersonbylastname。

1.通過“start | accessories | windows powershell | windows powershell ise”打開powershell控制台。

2.導入sqlps子產品,建立一個新的smo伺服器對象。

3.添加如下腳本并運作。

4.檢查是否存儲過程已建立。

(1)打開ssms。

(2)展開adventureworks2008r2資料庫。

(3)展開“programmability | stored procedures”。

(4)檢視存儲過程是否在這裡。

《PowerShell V3——SQL Server 2012資料庫自動化運維權威指南》——2.14 建立存儲過程

5.在powershell中測試存儲過程。在同一個會話中,輸入如下代碼并運作。

為了建立存儲過程,首先需要初始化smo storedprocedure對象。建立這個對象時,需要傳遞資料庫句柄和存儲過程名作為參數。

你可以設定存儲過程對象的一些屬性,如是否加密。

如果定制了textmode = $true,你需要自己建立存儲過程的頭部。如果你有參數,這些将會在你的文本頭部被定義,例如:

否則,如果textmode = $false,技術上允許powershell自動生成頭部,基于你給定的其他屬性和參數設定。你也需要逐一建立參數對象并将它們添加到存儲過程中。

當建立存儲過程時,使用字元串設定存儲過程對象的textbody屬性定義。

一旦頭部資訊、定義和存儲過程屬性就位,你可以調用create方法,将createproc語句發送到sql server,并建立存儲過程。