2014-11-30 4 views
0

간단한 대답이 있습니다. 나는 단지 그것을 어떻게하는지 모른다. 여러 SQL 서버에서 데이터를 수집하는 방법이 필요합니다. 다음 코드를 사용하여 데이터를 가져옵니다. (실제 코드가 아님).여러 SQL Server에서 데이터 수집

이 코드는 일련의 SQL Server에 대한 VERSION 정보를 가져옵니다. 이 정보를 배열이나 일종의 컬렉션으로 수집 할 방법이 필요합니다.

이후 FOREACH 블록 다음에는 한 곳에서 데이터를 얻은 후에 작업하겠습니다. 고맙습니다. 왜 배열을 사용하지

$servers = 'srv1','srv2','srv3','srv4','srv5' 

$sql = "select @@version" 
$res = foreach($i in $servers) { 
    Invoke-Sqlcmd -ServerInstance $i -Query $sql -ConnectionTimeout 60 -QueryTimeout 99999 
} 

답변

1

이 같은

$servers = 'srv1','srv2','srv3','srv4','srv5' 

foreach($i in $servers) { 

$sql = "select @@version" 

#I need a way to collect the below result set in a variable cummulatively 
#if i just use some variable $res, data gets overwritten in every iteration 

Invoke-Sqlcmd -ServerInstance $i -query $sql -ConnectionTimeout 60 -QueryTimeout 99999 

} 
+0

미키 감사합니다 – RaviLobo

1

뭔가 당신이 원하는 무엇을해야합니까?

Invoke-SQLcmd의 결과는 배열에 추가 할 수있는 개체가됩니다. 좋아요 :

$servers = 'srv1','srv2','srv3','srv4','srv5' 

$result = @() 
foreach($i in $servers) { 

$sql = "select @@version" 

#I need a way to collect the below result set in a variable cummulatively 
#if i just use some variable $res, data gets overwritten in every iteration 

$result += Invoke-Sqlcmd -ServerInstance $i -query $sql -ConnectionTimeout 60 -QueryTimeout 99999 

} 
+0

이 솔루션을 더 좋아합니다. –

+0

고맙습니다. Ansgar! – RaviLobo

0

이미 답변을 찾은 것 같습니다. Invoke-Sqlcmd를 피하려면 다른 옵션이 있습니다.

Invoke-Sqlcmd2은 이전의 Microsoft MVP SQL 용 Chad Miller의 이전 기능이며 다른 일부 기여자입니다. 단순화 된 매개 변수화 된 쿼리, 파이프 라인 입력, SQLPS에 대한 종속성 등의 이점이 있습니다.

#Dot source Invoke-Sqlcmd2 
. "\\path\to\Invoke-Sqlcmd2.ps1" 

#Example query using pipeline input. 
#Append server instance adds the instance as a column. 
$Servers | 
    Invoke-Sqlcmd2 -Query "select @@version as Version" -AppendServerInstance 

<# 
    Version              ServerInstance                      
    -------              --------------                      
    Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64) ... ServerInstance1                        
    Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64) ... ServerInstance2                        
    Microsoft SQL Server 2012 (SP1) - 11.0.3368.0 (X64) ...  ServerInstance3                        
    Microsoft SQL Server 2012 (SP1) - 11.0.3368.0 (X64) ...  ServerInstance4  
#> 

건배!

+0

쿠키 몬스터. – RaviLobo

관련 문제