A
numaralı sunucudan SQL örneklerinin bir listesini çeken ve sonra döndürülen listeden döngüler uygulayan bir proje üzerinde çalışıyorum ve sonunda bir sorgunun çalıştırılması (sonuç olarak kullanıcıları denetleme ve sonuçların içine ekleme tablo) ancak bir hata alıyorum instance not found
. Görünüşe göre ben değişkene döngü içinde doğru bir şekilde tanımlama yapıyorum çünkü örnek ismini kodlarsam çalışır.Değişken SQL örneği adını Invoke-SQLcmd'ye geçirme hatası
Bunun nasıl düzeltileceğine dair herhangi bir giriş için teşekkür ederiz.
$Serverlist = invoke-sqlcmd -ServerInstance TESTSERVER1 -Database TESTDB -Query "SELECT instancename from testtable"
foreach ($SQLInst in $Serverlist)
{
$Inst = $SQLInst.INSTANCE
Invoke-Sqlcmd -ServerInstance ${$Inst} -Database Master -Query "select @@servername as servername" | select -ExpandProperty servername
} #end foreach loop
Invoke-Sqlcmd : A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) At line:12 char:1 + Invoke-Sqlcmd -ServerInstance ${$SQLInst} -Database Master -Query "select @@serv ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [Invoke-Sqlcmd], SqlException + FullyQualifiedErrorId : SqlExectionError,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand
Ben iki varyasyonunu kullanmayı denedim ve hala hata alıyorum ettik: Çağır-sqlCmd: SQL Server bağlantı kurulurken ağ ilgili veya örneği özgü bir hata oluştu. En büyük sorgunun döndürdüğü örnek adını kodlarsam çalışır. –
'$ Inst' değişkeninin yaptığınız değeri içerdiğinden emin misiniz? Bir 'Write-Verbose -Message '~ $ Inst ~" -Verbose' ekleyin ve ne yazdığını görün ya da daha iyisi kodda hata ayıklayın ve değişkenleri denetleyebilmeniz için bir kesme noktası ekleyin. – briantist
Açıklama ile herhangi bir çıktı almıyorum ama eğer Write-Output $ SQLInst eklerseniz bir değer elde ederim. Örnekleme adı olarak $ Inst'ı doğru olarak nitelendiriyor muyum? –