首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQLCMD查询中使用双引号

在SQLCMD查询中使用双引号
EN

Stack Overflow用户
提问于 2010-07-21 17:39:10
回答 1查看 1.8K关注 0票数 2

我想通过SQLCMD发出以下命令:

代码语言:javascript
复制
IF DB_ID('My_DB') IS NOT NULL DROP DATABASE My_DB

不过有几个警告..。

  1. 数据库名是dynamic
  2. ,运行命令(BuildForge)的程序如果出现在单引号

中,将不会替换变量。

所以,我不能用:

代码语言:javascript
复制
-Q"IF DB_ID('${db_name}') IS NOT NULL DROP DATABASE ${db_name}

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

代码语言:javascript
复制
-Q"IF DB_ID("${db_name}") IS NOT NULL DROP DATABASE ${db_name}

因为SQLCMD会在双引号的开始和结尾被绊倒。

我知道我可以创建一个脚本并为数据库名称传入一个参数,但是在一个没有脚本的命令行中有任何方法可以做到这一点吗?有没有办法避开双引号等等?是否有允许我正确构建字符串的BuildForge语法?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-21 17:55:50

我通常会用-q和脚本来做这件事,但是有些想法.

你能做到吗?

代码语言:javascript
复制
-Q"IF DB_ID(RTRIM(LTRIM('    ${db_name}    '))) IS NOT NULL DROP DATABASE ${db_name}"

还是这个?

代码语言:javascript
复制
-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"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3302140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档