Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 运行sql server powershell需要哪些管理单元?_Sql Server 2008_Powershell_Batch File - Fatal编程技术网

Sql server 2008 运行sql server powershell需要哪些管理单元?

Sql server 2008 运行sql server powershell需要哪些管理单元?,sql-server-2008,powershell,batch-file,Sql Server 2008,Powershell,Batch File,作为批处理文件或windows计划任务运行sql server powershell脚本(使用invoke sqlcmd)需要哪些管理单元或初始化 我尝试了以下方法: # mysqlscript.ps1 . "D:\Posh\init-sql.ps1" invoke-sqlcmd ..... powershell.exe -noe "D:\Posh\mysqlscript.ps1" 其中init-sql.ps1是Microsoft描述的提供程序初始化(请参阅) 然后,我尝试了以下方法: #

作为批处理文件或windows计划任务运行sql server powershell脚本(使用invoke sqlcmd)需要哪些管理单元或初始化

我尝试了以下方法:

# mysqlscript.ps1
. "D:\Posh\init-sql.ps1"
invoke-sqlcmd .....
powershell.exe -noe "D:\Posh\mysqlscript.ps1"
其中init-sql.ps1是Microsoft描述的提供程序初始化(请参阅)

然后,我尝试了以下方法:

# mysqlscript.ps1
. "D:\Posh\init-sql.ps1"
invoke-sqlcmd .....
powershell.exe -noe "D:\Posh\mysqlscript.ps1"
发生的只是打开powershell命令提示符。我非常确定invoke-sqlcmd没有被执行

谢谢
Emi

如果您只想使用invoke sqlcmd,您可以使用一个非常简单的函数来代替它:

将函数invoke-sqlcmd2复制到脚本中:


如果您只想使用invoke sqlcmd,您可以使用一个非常简单的函数:

将函数invoke-sqlcmd2复制到脚本中:


好的,谢谢!我会试试,让你知道!还不清楚为什么标准初始化在执行时不能像我的问题中描述的那样工作。我在初始化脚本中遇到了一些问题。首先,如果您在x64计算机上,取决于脚本是从x86还是x64 PowerShell中调用,脚本可能无法工作,因为针对注册表的脚本无法工作。很容易通过移除支票来修复。第二,这确实添加了pssnapin,如果您以前没有运行过它,则需要以管理员身份运行。同样容易修复。不过,我的感觉是,如果您只需要调用sqlcmd,那么就不用为SQL Server 2008/2008 R2 PowerShell Snapinshell操心了。您好,我已经尝试了您的脚本,它工作得很好。谢谢您好,我返回调用sqlcmd,因为现在我需要向查询传递参数,而您的函数不支持这些参数:(.是否要扩展它?需要花费很多精力吗?调用sqlcmd支持的参数有点像wierd sqlcmd.exe样式的参数。不确定为什么要在直接的PowerShell变量上使用它们。例如,我可以定义一个变量$a='smith'和一个查询“select*from authors where au_lname='$a'”好的,谢谢!我会尝试一下并让您知道!还不清楚为什么标准初始化在按照我的问题中所述执行时不起作用。我在初始化脚本中遇到了一些问题。首先,如果您在x64机器上,取决于脚本的名称是form x86还是x64 PowerShell,该脚本可能无法按要求工作注册表不起作用。很容易通过删除检查来修复。第二,这确实添加了pssnapin,如果您以前没有运行过它,则需要以管理员身份运行。同样很容易修复。我的感觉是,如果您只需要调用sqlcmd,就不必为SQL Server 2008/2008 R2 PowerShell Snapinshell操心了。您好,我已经尝试了您的脚本,它工作得很好。比ks!您好,我返回调用sqlcmd,因为现在我需要向查询传递参数,而您的函数不支持这些参数:(.是否要扩展它?需要花费很多精力吗?调用sqlcmd支持的参数有点像wierd sqlcmd.exe样式的参数。不确定为什么要在直接的PowerShell变量上使用它们。例如,我可以定义一个变量$a='smith'和一个查询“select*from authors where au_lname='$a'”很抱歉,但是我验证了invoke sqlcmd工作正常,我只是做了错误的测试。但是,如果有人只需要使用invoke sqlcmd,下面的解决方案是一个不错的选择。很抱歉,但是我验证了invoke sqlcmd工作正常,我只是做了错误的测试。但是,下面的解决方案是一个不错的选择如果有人只需要使用invoke-sqlcmd。