只是想知道如何在PowerShell脚本的内部添加一个SQL脚本。现在,我有一个脚本可以获取此SQL文件并为每个数据库运行。我想知道我是否可以在PowerShell中包含此SQL脚本。我计划使我的PowerShell脚本每天运行。
这是我目前拥有的
$out = foreach ($SERVER in $SERVERS) {
$InvokeParams = @{
Server = $SERVER
Database = 'test database'
Username = 'username'
Password = 'password'
InputFile = 'C:usertest.sql'
QueryTimeout = 120 #avoid query to break
}
目标:尝试在InputFile内部实现SQL代码,而不是致电/给SQL文件的路径
目标:
InputFile = SQL SCRIPT
我只能举一个示例,因为我不知道SQL脚本的内容。
$out = foreach ($SERVER in $SERVERS) {
$InvokeParams = @{
Server = $SERVER
Database = 'test database'
Username = 'username'
Password = 'password'
Query = "Select Column1,Column2 from Table"
QueryTimeout = 120 #avoid query to break
}
Invoke-Sqlcmd @InvokeParams
}
您只需要将查询添加到$InvokeParams
哈希表中的Query
键即可。如果要保持哈希表每处理,则可以随时将查询键入字符串并将其设置为另一个变量。然后在哈希表中使用Query = $variable
。如果查询很长(多线(并且其中包含其他引号,则可以使用此处的弦乐(@''@
或@""@
(进行简化。
$Query = @'
USE Database
Select Table1.Column1,Table1.Column2,Table2.Column1
FROM Table1
JOIN Column1 ON Table2.Column1=Table1.Column1
GO
'@
$out = foreach ($SERVER in $SERVERS) {
$InvokeParams = @{
Server = $SERVER
Database = 'test database'
Username = 'username'
Password = 'password'
Query = $Query
QueryTimeout = 120 #avoid query to break
}
Invoke-Sqlcmd @InvokeParams
}