2011-08-26 4 views
1

데이터베이스 이름의 일부를 인수로 받아들이고 데이터베이스를 만드는 배치 파일이 있습니다. 배치 파일의 일부는 다음과 같습니다.배치 파일 인수에 도트 문자를 사용하여 전달하는 방법은 무엇입니까?

예 :

sqlcmd -S %1 -i "createDB.sql" -v dbname = DB%2 

두 번째 매개 변수는 15.3, 또는 14.0.60하지만 그것은 DB를 생성하고 오류를 발생시키지 않습니다이 버전 번호를 통과 할 때처럼의 점을 가지고 할 수있는 버전을, 있어야하는데 23, 10과 같이 간단한 숫자 만 전달하면 작동합니다.

문제의 원인을 알려주십시오.

고마워요.

+1

StackOverflow에 오신 것을 환영합니다. 나중에 참조 할 수 있도록 오류가 무엇인지에 대한 정보가 없으면 "오류 발생"이 유용하지 않습니다. * exact * 오류 메시지 텍스트를 포함하여 오류에 대한 특정 정보를 제공해야합니다. 이것은 사람들이 당신을 더 빨리 도울 수있게 해주 며, 이는 당신과 당신을 도우려는 사람들에게 도움이됩니다. 감사. :) –

+2

@ Fisseha 정확한 오류 메시지를 게시하십시오. –

답변

0

따옴표로 묶어 보셨습니까? 그게 sqlcmd -v의 올바른 사양이라고 생각합니다.

즉.

sqlcmd -S %1 -i "createDB.sql" -v dbname = "DB%2" 
+0

인수에 대한 잘못된 구문을 여전히 불평하고 있습니다. 전달하는 인수는 servername \ instance 16.30과 그 구문이 .30 근처에있는 잘못된 구문입니다. – asahun

+2

자세한 도움말을 보려면 정확한 오류 메시지를 게시해야합니다. –

0

가변 값에 따옴표를 추가해야합니다. 그것은

sqlcmd -S %1 -i "createDB.sql" -v dbname = "DB%2" 
+0

인수에 대한 잘못된 구문을 여전히 불평하고, 전달하는 인수는 servername \ instance 16.30과 그 구문이 .30 근처의 잘못된 구문과 유사합니다. – asahun

0


이 문제가 아니라 제대로 점 문자가 포함 된 식별자를 인용하는 방법에 대한 배치 파일의 인수의 일환으로 도트 문자를 전달하는 방법에 대해 아닙니다 밝혀 작동합니다 SQL, 특히 Transact-SQL에서 사용됩니다.

나는 당신과 같이 대괄호 데이터베이스의 이름을 둘러싸 추가로 시도해야한다고 생각 :

또는
sqlcmd -S %1 -i "createDB.sql" -v dbname = "[DB%2]" 

당신은 SQL 스크립트 $dbname 주위에 괄호 (대신 즉 을 포함해야 할 수도 있습니다 커맨드 라인에 그것들을 넣는 것). 그러나 그 스크립트를 보지 않고 나는 확실히 말할 수 없다.

관련 문제