Sql Server 2008 sp_executesql 语法帮助 - 我认为我的引用不正确

2023-12-29

使用 SQL Server 2008,我尝试构建一个字符串并使用 sp_executesql 执行它。我显然有一些引用是错误的。它似乎正在运行,但数据库并未删除。有人可以帮我纠正语法吗?

USE [master]
GO

DECLARE @sql NVARCHAR(500)
SET @sql = N' IF EXISTS (SELECT NAME FROM master.sys.databases sd where name =''@DBName'') 
BEGIN
  ALTER DATABASE [@DBName] SET  RESTRICTED_USER WITH ROLLBACK IMMEDIATE
  ALTER DATABASE [@DBName] SET  SINGLE_USER WITH ROLLBACK IMMEDIATE
  DROP DATABASE [@DBName]
END';

EXECUTE sp_executesql @sql, N'@DBName sysname', @DBName = 'ReapirInformation'

GO

我尝试过添加和删除引号,但我似乎无法拨入正确的组合。当然欢迎任何提示或技巧。

Thanks,
~ck 在圣地亚哥


动态 SQL 不是这样工作的。
您仍然无法将参数传递给将用于代替对象名称的动态字符串。

您必须自己构造查询字符串,手动替换@DBName与实际价值。但是,您可以在方程右侧使用参数,不带任何引号。

此外,当将对象名称放入查询中时,请始终使用QUOTENAME http://msdn.microsoft.com/en-us/library/ms176114.aspx功能。它将正确转义名称,因此不会出现 SQL 注入或由对象名称中的某些字符引起的不良行为。

SET @sql = N' IF EXISTS (SELECT NAME FROM master.sys.databases sd where name = @DBName)
BEGIN
  ALTER DATABASE ' + quotename(@DBName, '[') + N' SET  RESTRICTED_USER WITH ROLLBACK IMMEDIATE
  ALTER DATABASE ' + quotename(@DBName, '[') + N' SET  SINGLE_USER WITH ROLLBACK IMMEDIATE
  DROP DATABASE ' + quotename(@DBName, '[') + N' 
END';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sql Server 2008 sp_executesql 语法帮助 - 我认为我的引用不正确 的相关文章

  • 数字表与递归 CTE 生成一系列数字

    为什么使用数字表比使用递归 CTE 动态生成它们要快得多 在我的机器上 给定一张桌子numbers单列n 主键 包含从1到100000的数字 查询如下 select n from numbers 大约需要 400 毫秒才能完成 使用递归 C
  • 从 Getdate() 获取时间

    我想采取Getdate 结果 例如 2011 10 05 11 26 55 000 into 11 26 55 AM 我看过其他地方并发现 Select RIGHT CONVERT VARCHAR GETDATE 100 7 这给了我 11
  • SQL 约束以防止根据列的先前值更新列

    是否可以使用检查约束 或其他一些技术 来防止在更新记录时设置与其先前值相矛盾的值 一个例子是 NULL 时间戳 表明发生了某些事情 例如 file exported 一旦文件被导出并且具有非 NULL 值 就不应再将其设置为 NULL 另一
  • 同时从2个表中删除?

    我正在使用 asp net 和 sql 服务器 我有 2 个表 类别和产品 在产品表中 我的categoryId 为FK 我想要做的是 当我从类别表中删除类别时 我希望该类别中的所有产品都将在产品表中删除 如何才能做到这一点 我更喜欢使用存
  • 快速将列的副本添加到 MySQL 表

    我需要一种快速的方法来复制表中的 DATETIME 列并为其指定一个新名称 我的表中有一个名为 myDate 的列 名为 myResults 我需要一个查询来在名为 newDate 的表中创建一个新列 该列的数据与 myDate 列完全相同
  • 关键字“table”附近的语法不正确,无法提取结果集

    我使用 SQL Server 创建了一个项目 其中包含以下文件 UserDAO java public class UserDAO private static SessionFactory sessionFactory static se
  • 使用加权行概率从 PostgreSQL 表中选择随机行

    输入示例 SELECT FROM test id percent 1 50 2 35 3 15 3 rows 你会如何编写这样的查询 平均 50 的时间我可以获得 id 1 的行 35 的时间 id 2 的行 15 的时间 id 3 的行
  • 我可以从 SQL Server 读取元数据来了解最后更改的行/表吗?

    我们有一个数据库hundreds的桌子 有没有某种metaSQL Server 中的数据源 我可以以编程方式查询以获取名称最后更改表和行 或者我们是否需要实施这个我们自己每个表中的字段称为上次更改日期时间 etc 就查明表最后一次修改的时间
  • 从 Sharepoint 到 SQL Server 的实时同步

    我见过许多将 SQL Server 数据同步到 SharePoint 的解决方案 但没有见过将 SharePoint 列表同步到 SQL Server 的解决方案 有谁知道解决方案吗 商业化就好了 或者 我需要编写一个 Web 部件来创建多
  • SELECT NULL、*、NULL、NULL 中令人困惑的 SQL 错误

    的背景我试图解决第四个现实任务 https www hackthissite org playlevel 4 在 hackthissite org 中 无法确切地弄清楚我应该在 URL 中注入什么 SQL 来检索电子邮件列表 浪费了几个小时
  • SQL WHERE 取决于星期几

    我需要检查不同日期的记录 具体取决于当前是一周中的哪一天 在周五 我需要它查看整个下周 直到下周日 在其他任何一天 它都应该检查当前周 直到下周日 我目前有以下内容 但由于语法错误而无法工作 是否可以做一个CASE WHEN里面一个WHER
  • SQL 按 IN 子句中的元素排序

    我有一个ITEM表 我想返回按 IN 子句中通知的相同顺序排序的结果 这些 ID 由用户告知 今天我有这个 SELECT FROM ITEM WHERE ITEM ID IN 45 2 671 6 ORDER BY CASE ITEM ID
  • 尝试从 Linux 通过 ODBC 连接到 SQL Server 2014 时出现错误代码 0x2746 (10054)

    Ubuntu 22 04 1 LTS pyodbc 4 0 35 OpenSSL 3 0 2 15 Mar 2022 Library OpenSSL 3 0 2 15 Mar 2022 遵循的步骤安装适用于 SQL Server Linux
  • 使用默认路径中的文件创建数据库

    我想创建一个创建数据库的 SQL 脚本 现在 我有这个 CREATE DATABASE Documents ON PRIMARY NAME N Documents FILENAME N Documents mdf LOG ON NAME N
  • 如何将逗号分隔的列值与另一个表作为行连接

    我试图通过首先转换我正在成功执行的 SupplierId 列中的逗号分隔值来连接两个表 然而 当我尝试通过外键 DCLink 加入另一个带有供应商名称的表 Vendors 时 问题就出现了 这就是我的意思 原始表的 select 语句 SE
  • 同一表中同一列的 SQL 完全外连接

    这可能更多的是一个设计问题 但我希望这在没有太多巫术的情况下是可能的 假设我有一个这样的表 SELECT FROM stuff id grp 1 a 2 a 3 a 1 b 2 b 4 b 我想要得到这样的东西 ID 按列分组 a id b
  • 如何使用单个查询对从另一个表检索的表列表进行 UNION?

    我有一个表 其中包含 PostgreSQL 中的表列表 id table 1 table1 2 table2 3 table3 我想从所有这些表的联合中进行选择 例如 伪代码 select from union select table f
  • 批量插入,asp.net

    我需要获取与会员相对应的 ID 号列表 在任何给定时间处理的数量可能在 10 到 10 000 之间 我可以毫无问题地收集数据 解析数据并将其加载到 DataTable 或任何内容 C 中 但我想在数据库中执行一些操作 将所有这些数据插入表
  • SSRS - 组表达总数总计

    我的小组总数是一个减去最后一个的表达式 Hours1 从一开始的价值 Hours1 团体的价值 EquipmentName1 数据集 dataset1 我需要一个总计 即每件装备的组表达总计 我无法使用相同的公式从数据集 dataset1
  • SQL Server 列的默认随机 10 个字符串值

    我有一个专栏rndm在我的桌子上 客人 现在 对于领域Default value or Binding对于表 每当插入新行时 我想自动将 10 个字符的随机字符串插入到该列中作为默认值 该随机字符串不能包含特殊字符 只能包含以下字符a zA

随机推荐

  • HTML 提交按钮:不同的值/按钮文本?

    我想创建一个 HTML 表单提交按钮value add tag 但是 该网页是瑞典语的 所以我想要一个不同的按钮文字 也就是说 我想要一个像这样的按钮 但我想让我的代码像 if request getParameter cmd equals
  • 如何改变 DataFrame?

    我正在尝试从数据框中删除一些列 并且不希望返回修改后的数据框并将其重新分配给旧数据框 相反 我希望该函数只修改数据框 这是我尝试过的 但它似乎并没有做我所除外的事情 我的印象是参数是作为参考传递的 而不是按值传递的 function rem
  • 这个严格的别名示例正确吗?

    在过去的一周左右的时间里 我一直在阅读严格的别名规则 并遇到了这篇文章 了解 C C 严格别名 http dbp consulting com tutorials StrictAliasing html 本文介绍了几种交换 32 位整数的一
  • 打开模板文件时自动显示表单,来自资源管理器的 dotm

    我编写了一个基于表单的文档生成宏 用 VBA 编写 以便分发给销售团队 为了便于使用 我想提供一个独立的文件 该文件在打开文档后将立即显示该表单 使用 AutoOpen 如果 word 已经打开并且 dotm 文件已在其中打开 我可以让表单
  • 哪些 Google OAuth2 范围被视为“敏感”的列表在哪里?

    据我了解 Google OAuth2 范围大致分为三个部分 按从最难获准使用到最难的顺序排列 限制范围 灵敏范围 其他一切 我在这里找到了限制范围列表 https support google com cloud answer 911091
  • 如何在 pandas 中创建“排名”列?

    我正在尝试对专栏进行排名 col 1 在熊猫中 如果有平局 我想看另一栏 col 2 只是为了那些记录并打破平局 如果即使在该列中它们也相同 我只想随机分配排名 但每一行必须有唯一的排名 Example col1 col 2 Rank 20
  • 刷新 iFrame(缓存问题)

    我们遇到了一个奇怪的问题 我们不确定到底是什么原因造成的 让我详细说明一下这个问题 假设 我们有两个不同的html页面a html和b html 还有一个用index html编写的小脚本
  • 品牌形象太大且在 Bootstrap 导航栏上未对齐

    我的网站上的导航栏品牌出现一些问题 我希望它看起来垂直对齐并且尺寸较小 您能否建议如何实现这一点 div class navbar navbar default navbar fixed top style background color
  • Windows Powershell - 使用文本文档中的列表重命名文件列表

    我尝试使用以下代码重命名文件文件夹 C www folderx 使用文本列表 list txt 但我不知道如何获取当前文件索引 Get Childitem C www folderx OldName name NewName GC list
  • 使用 iText 从 pdf 文件获取文本字体

    我一直在尝试使用 iText 库提取 pdf 文档中每个单词的属性 字体 字体大小 颜色等 我可以从每个页面中提取文本 但不能提取属性 我也没有找到任何可以提供相同功能的东西 请帮我 我不是 Java 人员 所以我无法为您提供工作代码 但希
  • jsp PageContext 对象的生命周期是怎样的 - 它是线程安全的吗?

    jsp PageContext 对象是作为 http 请求 响应周期的一部分创建和销毁的 还是在请求之间缓存和重用 PageContext 具有建议在请求之间重用的生命周期方法 即初始化 释放 如果重用它们 可能会造成严重的并发问题 如果两
  • 在运行时设置 ImageView 的大小(以 px 为单位)

    我想使用整个可用宽度将 8 个图像拇指放在一条水平线上 这些图像是从网络服务中检索的 它允许我指定尺寸 我尝试了以下方法 int widthPx container getWidth LinearLayout thumbs LinearLa
  • 如何将自定义对象转换为 Data Swift

    我有一个自定义结构 它的类型属性是其他具有不可编码类型的结构 它是结构中结构的复杂树 我需要将其转换为数据以便保存它 我需要保存这个结构 聊天 struct Chat var dictOfRecentMessages String Mess
  • 如何将 Observable.FromEvent 与静态事件一起使用?

    我正在尝试使用反应式扩展编写代码来处理异步调用 其中启动方法和完成的事件都是静态的 我不能使用 var languageSetsLoaded Observable FromEvent
  • 向文本区域添加水印

    如何为文本区域添加 输入文本区域 等水印
  • 在 perl 中匹配日期

    我想匹配日 月 年格式的日期 其中日是两位数 月份是两位数 年份是四位数 另外 我想检查它是否是一个有效的日期 例如知道什么时候是闰年 并知道哪个月份有 30 天 31 天和 28 天或 29 天的二月 看看类似的东西日期 马尼普 http
  • 如何在 Maven 中为生成的源创建文件夹?

    我必须使用 wsimport 生成源 并且我假设它应该转到 target generated sources wsimport 而不是 src main java 问题是 wsimport 需要在执行之前创建目标文件夹 但它失败了 我可以先
  • 在 PyCharm 中安装气流包附加功能

    我想用Airflow https airflow incubator apache org 包裹extras https packaging python org installing installing setuptools extra
  • 启用 ActiveX 控件以引发事件,而无需在 System.Windows.Forms.Application 中运行

    我们的团队正在编写一些需要我们与网络设备交互的代码 该设备使用专有协议 制造商以OCX控件 即ActiveX控件 的形式向我们提供了接口库 我在尝试使用 ActiveX 控件时遇到了几次错误 例如使用包装在 C CLI 中的本机 C MFC
  • Sql Server 2008 sp_executesql 语法帮助 - 我认为我的引用不正确

    使用 SQL Server 2008 我尝试构建一个字符串并使用 sp executesql 执行它 我显然有一些引用是错误的 它似乎正在运行 但数据库并未删除 有人可以帮我纠正语法吗 USE master GO DECLARE sql N