2012-04-16 75 views
0

我想创建一个PowerShell脚本,我可以在更新它们之前运行备份对象到文件。我的目标是在对象更改之前备份对象,以防发生中断。我想在参数传递给像下面这样运行:SQL PowerShell创建对象的备份

backupobjects.ps1 -servername -databasename -schemaname -objectname -outputdirectory

所以,如果我把这个PowerShell脚本并传递参数的脚本将连接到数据库并找到该对象并保存CREATE脚本并将该对象保存到传入的输出目录中,并将BEFORE_objectname.sql作为文件名。

我刚刚开始在PowerShell中如此接受参数,我还没有学到。

任何指导或建议都会有所帮助。

+0

那么......你的问题是什么?你有没有尝试创建脚本?你有关将参数传递给PowerShell的问题吗?连接到数据库?你需要具体。 – 2012-04-16 16:32:55

回答

0

而不是写吧,这里有一对夫妇的微移的:

1)参数是你在PowerShell中的参数如何传递。我喜欢做它像这样:

param (
    [string] $server = (Read-Host "Enter a server name"), 
    [string] $db = (Read-Host "Enter a database name") 
) 

你再参考$服务器和$在你的脚本后DB仿佛你明确的初始化它们。

2)SQL服务器中的大多数(如果不是全部)对象都附有Script()方法。例如看看Table class

3)您可以使用ScriptingOptions类来控制对象如何编写脚本。在对象上调用Script()方法时,请将ScriptingOptions对象作为参数传递,脚本行为将受其控制。

+0

这很酷,我会用你的建议,看看我能否让我的脚本工作。 是否有一种简单的方法可以在不停止的情况下接收参数并询问用户输入。 我更喜欢这样做: scriptname.ps1 -servername -databasename -schema -objectname -outputpath 这是可行的吗? – 2012-04-17 12:54:25

+0

您可以使用我提供的代码完成此操作。如果你传入参数,它不会提示。如果你不这样做,它会的。 – 2012-04-17 14:03:41