本节书摘来自异步社区出版社《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)查看存储过程是否在这里。
5.在powershell中测试存储过程。在同一个会话中,输入如下代码并运行。
为了创建存储过程,首先需要初始化smo storedprocedure对象。创建这个对象时,需要传递数据库句柄和存储过程名作为参数。
你可以设置存储过程对象的一些属性,如是否加密。
如果定制了textmode = $true,你需要自己创建存储过程的头部。如果你有参数,这些将会在你的文本头部被定义,例如:
否则,如果textmode = $false,技术上允许powershell自动生成头部,基于你给定的其他属性和参数设置。你也需要逐一创建参数对象并将它们添加到存储过程中。
当创建存储过程时,使用字符串设置存储过程对象的textbody属性定义。
一旦头部信息、定义和存储过程属性就位,你可以调用create方法,将createproc语句发送到sql server,并创建存储过程。