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