Invoke-WebRequest -Uri $ScriptURL -UseBasicParsing添加?在SQL查询开



我正在尝试使用

从github读取SQL脚本文件
Invoke-WebRequest -Uri $ScriptUrl -UseBasicParsing

,然后尝试在我的本地SQL Server使用

执行此脚本。
Invoke-Sqlcmd -ServerInstance $sqlinstance -database $db -query $qry

但是我得到错误:

Invoke-SqlCmd: ' ?'

我试图使用

Invoke-RestMethod -uri $ScriptUrl -UseBasicParsing

但这次也遇到了同样的问题。

我找到了这个问题的修复方法。我使用Remove(0,1)作为'?’开头附有标记。让我来展示一下cmdlet:

Add-PSSnapin SqlServerCmdletSnapin100
Add-PSSnapin SqlServerProviderSnapin100
#set variables
$GitRepository = "/XYZ/ProjectName/main/DB"
$GitManifestArray =@("Script1.sql","Script2.sql","Script3.sql","StoredProcedures.sql","Script4.sql","Script5.sql")
$SQLInstances = ".SQLEXPRESS"
ForEach ($SQLInstance in $SQLInstances.Split(","))
{
  echo "Running Scripts on " $SQLInstance
  ForEach ($file in $GitManifestArray)
  {
     $ScriptURL = ("https://raw.githubusercontent.com" + 
     $GitRepository+"/"+$file.Replace("/blob/","/"))
     $ScriptFromGit = Invoke-WebRequest -Uri $ScriptURL -UseBasicParsing
     $qry=$($ScriptFromGit.Content).Remove(0,1)
     Invoke-Sqlcmd -ServerInstance $SQLInstance  -Query $qry
 }}

但我仍然不知道为什么?'被添加到Script1的开头。sql(对我来说是Database.sql).

最新更新