2010-08-03 13 views
0

많은 수의 SQL 문이 포함 된 파일을 처리해야합니다. 문제는 SQL 문에 매개 변수가 포함되어 있다는 것입니다.매개 변수가있는 ExecuteNonQuery

예. 파일은 다음과 같습니다.

declare @var1 as nvarchar; 
set @var1 = 'value'; 
insert into table (field1, field2, field3) 
    values ('value1', 'value2', @var1); 

은 다음 세 줄로 반복됩니다.

필자는 파일을 3 개의 라인 블록으로 구문 분석하고 ExecuteNonQuery를 사용하여 파일을 분석 할 수 있기를 바랬지 만 문제는 SQL 문에 매개 변수가 들어 있다는 것입니다.

참고 : 예제에서 @ var1은 스크립트의 값으로 서버 변수를 선택합니다.

답변

0

나에게 SQL 스크립트 파일처럼 들립니다.

ISQL 또는 SQLCmd를 사용할 수 없습니까?

는 [부록]는

죄송합니다, 나는 당신이 ExecuteNonQuery는 언급 이후 MSSQL 다시 종료 가정.

이러한 명령문의 일관성이 유지되면 값을 인라인 할 수 있습니다. 그들은 데이터 형식이 다른 경우

* read and ignore first line. 
* read 2nd line and strip out value between quotes. 
* read 3rd line, replace the @x string with the value from line 2. 
* execute modified 3rd line. 
* repeat 

, 당신은 (즉 숫자에 대한 따옴표를 사용하지 않는) 읽고 값을 삽입하기 위해 선언 된 유형을 사용해야합니다.

루트에서 이것은 실제로 나쁜 설계 및/또는 조직 문제입니다.

+0

스크립트는 MySQL 데이터베이스에 대해 실행됩니다. MySQL에는 스크립트 파일을 가져 오는 명령 행 유틸리티가 있습니다. 그러나 프로그램에서이 작업을 수행하는 이유는 셸에 대한 액세스 권한이 없기 때문이며 MySQL UI 도구를 통해 파일을 실행하면 프로그램이 중단됩니다. 파일은 8GB 이상입니다. –

0

일반적으로 기존 SQL 스크립트를 실행할 때 GO으로 분할하고 큰 덩어리를 실행합니다. 나는 DECLARE 문으로 그 일을 시도하지는 않았지만, 스크립트를 그대로 실행하려고 시도 했습니까? 즉, 게시 한 청크?

+0

스크립트를 실행하려고 시도하고 "매개 변수 '@ var1'을 정의해야합니다."라는 오류 메시지가 나타납니다. –