2012-10-15 3 views
1

나는 먼저 powershell을 배웠다 고 말하고 싶다. 그리고 이것은 매우 간단한 대답 일지 모른다. 그러나 나는 약간의 조사를했고 내가 찾고있는 정확한 것을 찾을 수 없다. .문자열에 SQL powershell 속성을 비교할 수 없다

내 목표 : SQL cmdlet을 사용하여 스크립트를 실행하는 데 필요한 일부 데이터베이스를 시도하거나 제외합니다. 아래는 내가 그래서이 켜져있는 SQL 클러스터 결정할 수있는 foreach 루프를 사용하여 속성을 비교하려고하려고 할 때이 이후, 데이터베이스

$ExcludeDBs=Invoke-Sqlcmd -ServerInstance $EDDSServer -Database EDDS -InputFile $InactiveCaseSQLPath 

이 잘 작동을 얻을 내 코드입니다.

매개 변수 'FilterScript'를 결합 할 수 없습니다 : 나는 다음과 같은 오류가

$str="__SQL Cluster 13 (ALL NEW CASES HERE)" 
    $ExcludeDbs | foreach{ 
    if($ExcludeDBs | Where-Object SQLclusterName -eq $str){ 
    $SQLClusterName="ClusterNameSQL"} 
    }#end foreach loop 

: 다음은 내 코드입니다. "System.String"유형의 "SQLclusterName"값을 "System.Management.Autom ation.ScriptBlock"유형으로 변환 할 수 없습니다.

나는 이것이 타입 캐스팅과 관련이 있다고 생각하지만, 여기서 어디로 가야할 지 모르겠습니다. 어떤 도움이라도 대단히 감사 할 것입니다.

답변

0

SQLClustername은 문자열로 처리됩니다. 쿼리에서 반환되는 필드입니까?

또한, 쿼리에서 필드 반환되고있는 foreach

$str="__SQL Cluster 13 (ALL NEW CASES HERE)" 
$ExcludeDbs | foreach{ 
if($_.SQLclusterName -eq $str){ 
    $SQLClusterName="ClusterNameSQL"} 
}#end foreach loop 
+0

예 SQLClustername 내부 where-object을 필요가 없습니다. – Travis

관련 문제