代码之家  ›  专栏  ›  技术社区  ›  Tom H zenazn

在SQLCMD查询中使用双引号

  •  2
  • Tom H zenazn  · 技术社区  · 14 年前

    IF DB_ID('My_DB') IS NOT NULL DROP DATABASE My_DB
    

    但是有一些警告。。。

    1. 如果变量出现在单引号内,则运行该命令的程序(BuildForge)不会替换该变量

    -Q"IF DB_ID('${db_name}') IS NOT NULL DROP DATABASE ${db_name}
    

    因为它将在单引号中使用文字${db\u name}。我也不能用:

    -Q"IF DB_ID("${db_name}") IS NOT NULL DROP DATABASE ${db_name}
    

    谢谢!

    1 回复  |  直到 14 年前
        1
  •  2
  •   gbn    14 年前

    我通常会用-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"
    
    推荐文章