Я хотел бы выполнить следующую команду через SQLCMD:Используя двойные кавычки в запросе SQLCMD
IF DB_ID('My_DB') IS NOT NULL DROP DATABASE My_DB
Есть несколько предостережений, хотя ...
- Имя базы данных является динамическим
- программа, которая работает под управлением команды (BuildForge) не заменит переменную, если она появляется в одинарные кавычки
Таким образом, я не могу использовать:
-Q"IF DB_ID('${db_name}') IS NOT NULL DROP DATABASE ${db_name}
, потому что он будет использовать символ $ {} db_name в одинарные кавычки. Я также не могу использовать:
-Q"IF DB_ID("${db_name}") IS NOT NULL DROP DATABASE ${db_name}
потому SQLCMD получает споткнулся на начало и конец двойных кавычках.
Я знаю, что могу создать скрипт и передать параметр для имени базы данных, но есть ли способ сделать это в одной командной строке без скрипта? Любой способ избежать двойных кавычек и т. Д.? Есть ли синтаксис BuildForge, который позволит мне правильно построить строку?
Спасибо!
Oooh! TRY ... CATCH может работать. Первая команда здесь, вероятно, будет иметь ту же проблему - BuildForge будет передавать буквальное значение для $ {db_name} вместо изменения его значения переменной. –
Второй способ работал, спасибо! –