2
我想通过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}传递一个字面值,而不是将其更改为变量值。 – 2010-07-21 18:16:56
第二种方法奏效,谢谢! – 2010-07-21 20:39:43