在Powershell脚本中添加SQL脚本

在Powershell脚本中添加SQL脚本,powershell,Powershell,只是想知道如何在powershell脚本中添加sql脚本。 现在我有了一个脚本,可以获取这个sql文件并为每个数据库运行。我想知道是否可以在powershell中包含此sql脚本。我计划每天自动运行powershell脚本 这是我目前的情况 $out = foreach ($SERVER in $SERVERS) { $InvokeParams = @{ Server = $SERVER Database = 'test database' Username = 'userna

只是想知道如何在powershell脚本中添加sql脚本。 现在我有了一个脚本,可以获取这个sql文件并为每个数据库运行。我想知道是否可以在powershell中包含此sql脚本。我计划每天自动运行powershell脚本

这是我目前的情况

$out = foreach ($SERVER in $SERVERS) { 
 $InvokeParams = @{
  Server = $SERVER 
  Database = 'test database'
  Username = 'username'
  Password = 'password'
  InputFile = 'C:user\test.sql'
    QueryTimeout = 120 #avoid query to break
 }
目标:尝试在INPUTFILE内部实现sql代码,而不是调用/给出sql文件的路径

目标:


我只能举一个例子,因为我不知道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
。如果查询是长的(多行),并且其中有其他引号,则可以使用here字符串(
@'
@'@
)进行简化

$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
}
$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
}