这部分是我的代码,部分来自其他人在堆栈溢出方面的帮助。
$excelFile = "C:\ExcelTest\Test.csv"
$functionDirectory = "C:\foldername"
$csv = Import-csv $excelFile -Header FileName
Import-Module sqlps
foreach ($line in $csv)
{
if(test-path -path ($functionDirectory + "\" + $line.FileName))
{
invoke-sqlcmd -inputfile "C:\foldername\filename.sql" -serverinstance "servername\instancename" -database "databasename"
}
}
我必须删除特定的serverinstance / servername以获取隐私权,但我已经多次检查了这两个,我不认为这就是问题所在。我一直收到错误
发生网络相关或实例特定错误 建立与SQL Server的连接。找不到服务器或 无法访问。验证实例名称是否正确 SQL Server配置为允许远程连接。
我通过运行
从服务器获得了双重检查的服务器/实例名称select @@servername + '\' + @@SERVICENAME
数据库名称显然很容易获得。我已经仔细检查了服务器是否已设置为进行远程连接(即使这是我的笔记本电脑上的本地数据库,而不是当前的远程服务器)。
我还有点想要检查的其他东西。
我读过你应该看看防火墙设置,但我不认为这些应该在我的机器上的本地服务器上有所作为。
我对SQL和powershell仍然有点新意,所以我为任何明显的语法或格式错误道歉(请指出,以便我可以纠正它们)。任何帮助将不胜感激。
答案 0 :(得分:0)
原来我需要删除实例名称并只使用服务器名称。