2011-04-13 3 views
6

SQLCMD 명령 :r은 상수가 아닌 문자 경로를 지원합니까? 예를 들어SQLCMD : r <path> 여기서 경로는 변수입니다

:

setvar $(path1) '.\script.sql' 
:r $(path1) -- SQL01260: A fatal parser error occurred: . 
:r '$(path1)' -- SQL01260: A fatal parser error occurred: . 
:r "$(path1)" -- SQL01260: A fatal parser error occurred: . 

답변

5

합니까 SQLCMD 명령 연구 지원 일정하지 않은 문자 경로?

이 있습니다. 변수를 잘못 정의하고 있습니다. 시도 :

:setvar path1 "script.sql" 
:r $(path1) 

도 참조하십시오. this article on MSDN

1

그냥 방금 잃어버린 시간을 절약하기 위해 다른 사람들을위한 예제로 여기에 게시하십시오.

test_setvar.sql 파일은 분명히 here 말하면 다음

-- :r test_setvar.sql 
:reset 

:setvar Name "filename" 
print '$(Name)' 
-- :setvar OutName '$(Name)' -- NO wont work 
-- :out $(OutName).txt 
:r $(Name).sql -- filename.sql exists and prints "Hello World" 
:out $(Name).txt -- filename.txt is created 

go 
:out stdout 

이 포함되어 있습니다. 이것에 대한 아웃 :와 실 거예요 작업을 포장 에서 예를

:out "string bit"$(field1)"string bit2"$(field2) 

작은 따옴표를 들어 :

참고 : 다중 부분 문자열 및 필드에 필요한 따옴표.

... 쿼리 내에서 이중 또는 작은 따옴표 줄 바꿈이 필요합니다.

where col.name LIKE "%" + "$(SEARCH_STRING)" + "%" 
1

문제는 VS 목록의 파일이 아니라 오류 목록에있는 파일과 관련이 있습니다.

참조하는 파일에 대해 구문 오류를 검색해야합니다. 예를 들어. \ script.sql