SQLCMD: r <path>, где путь является переменной - PullRequest
6 голосов
/ 13 апреля 2011

Поддерживает ли команда SQLCMD :r непостоянные литеральные пути?

Например:

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: .

Ответы [ 3 ]

6 голосов
/ 09 июля 2011

Поддерживает ли команда SQLCMD: r поддержку непостоянные буквальные пути?

Это так. Вы неправильно определяете свою переменную. Попробуйте:

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

См. Также эту статью на MSDN .

2 голосов
/ 30 сентября 2011

Просто разместите это здесь в качестве примера для других, чтобы сэкономить время, которое я только что потерял.

файл test_setvar.sql содержит следующее

-- :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 Например

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

Упаковка одинарных кавычек не подойдет: для этого.

Но ... В запросе необходимо использовать двойную или одинарную кавычку.

where col.name LIKE "%" + "$(SEARCH_STRING)" + "%"
1 голос
/ 17 января 2012

Проблема не в списках файлов VS в списке ошибок, а в файле, на который вы ссылаетесь.

Синтаксическая ошибка должна быть найдена для файла, на который вы ссылаетесь. Для вашего примера. \ Script.sql

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...