2010-11-23 7 views
0

그래서 .... 나는 다른 곳에서 나타내거나 보낼 데이터를 모으는 SQL (MSSQL 2005) 쿼리를 가지고 있습니다. 이 특별한 경우 PowerShell의 쿼리에서 CSV를 만들어야합니다.이 도구는 매우 간단합니다.SQL Select Query to PowerShell Help

내 문제는 이것입니다. 원격 시스템/SQL 서버에 대해 내 쿼리를 실행하려면 어떻게해야합니까? 쿼리 필수 매개 변수는 어떻게 전달합니까? (PARAM1, PARAM2, PARAM3 참조)?

보너스 포인트 ... PARAM1은 (는) 날짜, yyyy-mm-dd 형식이어야합니다. PARAM2는 OPT1, OPT2, OPT3의 세 가지 옵션 중 하나 여야합니다. PARAM3은 X 문자 수의 문자열이어야합니다.

PS Yes (예)를 사용하여 Osql.exe 나에게 발생하지만, 내가 배치에서 스크립팅 된로 잘 난 더 이상 배치를 사용하지 않으려는 ... 저 떠올랐다. ;-)

Select COL1, COL2 FROM [database].[dbo].[function](PARAM1,PARAM2,PARAM3); 

답변

2

이것은 즉, 그럼 당신은 당신의 $Results에 열 이름을 사용할 수있는 SQL cmdlets in 2.0:

$Query = "Select COL1, COL2 FROM [database].[dbo].[function](PARAM1,PARAM2,PARAM3)" 
$Results = Invoke-SQLCmd -ServerInstance <server> -Database <DB> -Query $Query 

꽤 간단하다

$Col1 = $Results.COL1

당신은 구문 분석 할 수 있습니다 다른 매개 변수에 대해서도 입니다 (예 :

).

$Query = "Select COL1, COL2 FROM [database].[dbo].[function](" + $Param1 + "," + $Param2 + "," + $Param3 + ")"

편집 :

Add-PSSnapin SqlServerProviderSnapin 
Add-PSSnapin SqlServerCmdletSnapin 
+0

OK 멍청한 놈 시간 :

는 사용을 스냅인 (snapin)를 활성화합니다. 지난 30 분 동안 Invoke-SQL을 다운로드/추가 할 곳을 찾았습니다. (나는 또한 다른 밤 그것을했고 그것을 발견 할 수 없었다)했다. 어리석게도 SQL Feature Pack 페이지에서 "SQL Server 용 Microsoft Windows PowerShell 확장"에서 생각했습니다. 그러나 그것을 설치 한 후에 나는 더 가깝지 않았다. LOL –

+0

패키지를 설치해야합니다. 그 대답에 대한 쪽지를 추가하겠습니다. – JNK

+0

오, 알았어. 나다 .. :) 어쩌면 재부팅, 아마도 어쩌면 그 필수이고 나는 그것을 놓쳤습니다. –