我想通过SQLCMD发出以下命令:
IF DB_ID('My_DB') IS NOT NULL DROP DATABASE My_DB不过有几个警告..。
中,将不会替换变量。
所以,我不能用:
-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语法?
谢谢!
发布于 2010-07-21 17:55:50
我通常会用-q和脚本来做这件事,但是有些想法.
你能做到吗?
-Q"IF DB_ID(RTRIM(LTRIM(' ${db_name} '))) IS NOT NULL DROP DATABASE ${db_name}"还是这个?
-Q"BEGIN TRY DROP DATABASE ${db_name} END TRY BEGIN CATCH IF ERROR_NUMBER() <> 3701 RAISERROR('some error not related to db not there', 16, 1) END CATCH"https://stackoverflow.com/questions/3302140
复制相似问题