我想创建一个powershell脚本,我可以运行它来备份对象到文件,然后再更新它们。我的目标是在更改它们之前备份对象以防万一。我想传递参数以运行如下:
backupobjects.ps1 -servername -databasename -schemaname -objectname -outputdirectory
因此,如果我调用此powershell脚本并传入参数,脚本将连接到数据库并找到对象并保存CREATE脚本并将对象保存到传入的outputdirectory中,并将BEFORE_objectname.sql作为文件名。
我刚刚开始使用powershell,所以接受我尚未学习的参数。
任何指导或建议都会有所帮助。
答案 0 :(得分:0)
不是为你写的,而是一些推动:
1)param是你在powershell中传递参数的方式。我喜欢这样做:
param (
[string] $server = (Read-Host "Enter a server name"),
[string] $db = (Read-Host "Enter a database name")
)
然后在脚本中引用$ server和$ db,就好像你已经明确初始化它们一样。
2)SQL Server中的大多数(如果不是全部)对象都附加了一个Script()方法。例如,看看Table class。
3)您可以使用ScriptingOptions类控制对象的编写方式。在对象上调用Script()方法时,将ScriptingOptions对象作为参数传递,脚本行为将受其控制。