如何使用 SqlCommand 创建带有参数化数据库名称的数据库?

2024-01-13

简而言之。我有两个简单的助手:

    private SqlCommand CreateCommand(string text)
    {
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = connection;
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = text;
        return cmd;
    }

    void SetParameter(SqlCommand cmd, string p, string dbName)
    {
        cmd.Parameters.Add(p, SqlDbType.NVarChar);
        cmd.Parameters[p].Value = dbName;
    }

这样执行就OK了:

var cmd = CreateCommand("CREATE DATABASE Demo "+
            @"ON (FILENAME = N'c:\demo_data.mdf') "+ 
            @"LOG ON (FILENAME = N'c:\demo_data.mdf.LDF') "+
            "FOR ATTACH " +
            "GO");
cmd.ExecuteNonQuery();

但这并没有:

string dataBaseAttachText = "CREATE DATABASE @dbname " +
                              "ON (FILENAME = @filename) " +
                              "LOG ON (FILENAME = @filenamelog) " +
                              "FOR ATTACH GO";
var cmd = CreateCommand(dataBaseAttachText);

SetParameter(cmd, "@dbname", "Demo");
SetParameter(cmd, "@filename", @"c:\demo_data.mdf");
SetParameter(cmd, "@filenamelog", @"c:\demo_data.mdf.LDF");

cmd.ExecuteNonQuery();

Why?


DML 操作支持参数,但 DDL 操作不支持参数,DDL 操作没有执行计划。您将需要使用动态 SQL

DDL = 数据定义语言(创建、删除、更改......)

DML = 数据操作语言(选择、更新、删除、插入)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 SqlCommand 创建带有参数化数据库名称的数据库? 的相关文章

随机推荐

  • 如何使图像标题宽度与图像宽度匹配?

    我正在尝试设计这个样式 div class figure img src some image jpg p class caption span class caption text Some caption of any length s
  • C# 获取%AppData%的路径

    C 2008 SP1 我正在使用下面的代码 dt ReadXml AppData DateLinks xml 但是 我收到一个异常 该异常指向我的应用程序运行的位置 找不到路径的一部分 D Projects SubVersionProjec
  • 打字稿导入类

    我已经尝试让这个东西工作很长一段时间了 到目前为止 我找到的解决方案还没有对我有用 这就是我所拥有的 Test ts module t export class Test constructor alert test Main ts
  • 在 JSF 中动态创建响应

    我想在我的 JSF 页面上有一个链接 单击此链接时 Java Web Start 应用程序将启动 该应用程序根本不影响当前页面 该应用程序会自行启动 问题是 我需要动态生成启动 Java Web Start 应用程序的 JNLP 文件 基本
  • 如何在 Pandas 数据框中堆叠行以获得一个“长行”?

    假设我有一个 4 行 3 列的数据框 我想水平堆叠行 这样我就得到一行 12 列 如何操作以及如何处理冲突的列名称 您可以通过以下方式实现这一目标stack计算框架以产生一系列所有值 然后我们希望使用以下方法将其转换回 dfto frame
  • 将二进制浮点“1101.11”转换为十进制(13.75)的正确算法?

    我用C编写了一个程序来转换浮点数以二进制表示 http kipirvine com asm workbook floating tut htm 1101 11 化为小数 13 75 但是 我似乎无法从算法中获得正确的值 将二进制浮点数转换为
  • JavaScript 中的“闭包”到底指的是什么?

    我理解闭包是什么 但我在理解这个术语到底是什么时遇到了一些困难closure指 我在许多网站上看到过这个术语 但很少有人就其实际定义达成一致 是保存在栈帧上的变量吗 是返回的函数吗 它是外部函数的范围吗 它是内部 返回 函数的范围吗 是不是
  • 如何在 Swift 3 中测试 URL 并获取状态代码?

    我正在使用最新版本的 Xcode 撰写本文时为 8 1 它使用 Swift 3 0 我想做的就是获取一个字符串 将其转换为 URL 并测试该 URL 看看它是否会给出 404 错误 我已经能够使用以下方法创建 URL 和 URLReques
  • Node.JS 内核模式线程

    我试图弄清楚 Node JS 其 Windows 版本 是如何在幕后工作的 我知道有用户模式和内核模式线程 并且我知道处理模型如下所示 我还知道从内核模式线程移动到用户模式线程被认为是上下文切换 Node JS C 非阻塞工作线程是内核模式
  • Angular2 在模板和变更检测中的功能

    我试图在服务中构建一种方法 检查是否应根据当前用户的权限向当前用户显示导航按钮 我知道这只是装饰性的 安全性 因此这是放置在模板内的按钮
  • 尾随返回类型中的占位符是否会覆盖初始占位符?

    g 似乎接受任意组合auto and decltype auto 作为初始和尾随返回类型 int a auto f return a int auto g gt auto return a int auto h gt decltype au
  • 关于 DSO 引用隐藏符号的警告究竟意味着什么?

    我在将某些共享库与 g 链接时遇到问题 它给了我这样的警告 hidden symbol XXX in YYY is referenced by DSO usr lib 我已经阅读了一些有关特定问题的相关问题 但我想从整体上理解它 这个警告是
  • 如何授予jnlp文件中依赖lib的所有权限?

    我在使用 Java Web Start 时遇到了一个严重的问题 我无法理解 情况如下 我有一个 JavaFX 应用程序 编写为 Java8 我想使用 Java WebStart 进行部署 直到最近 我还使用 HTTP 与服务器进行通信 一切
  • 仅在 Spring Data Rest 中为子资源级别启用存储库?

    我有 2 个 jpa 实体 Document 和 DispatchDetail 它们具有一对多关系 即一个文档可以有一个dispatchDetails 列表 我为每个实体创建了 2 个存储库 现在我要尝试文档 GET http localh
  • Django MakeMessages 在 Windows 中缺少 xgettext

    在 Windows 7 上运行 Django 我目前正在尝试使用 django 书籍第 19 章中的说明翻译几个 Django 模板 我已向模板添加了翻译标签 加载了 I18N 并修改了 django 设置 然后我运行 django adm
  • 快速地,为什么当协议有初始化器时我不能实例化它?

    据我所知 通常我无法实例化协议 但是 如果我在协议中包含一个初始化程序 那么编译器肯定知道当结构或类稍后使用该协议时 它将有一个可以使用的 init 吗 我的代码如下所示 protocol Solution var answer Strin
  • 无法连接到服务器:net/http:TLS 握手超时

    在 minikube for windows 上 我在 kubernetes 集群上创建了一个部署 然后尝试通过将副本从 1 更改为 2 来扩展它 之后 kubectl 挂起 我的磁盘使用率为 100 我的部署中只有一个容器 apiVers
  • 单击按钮后立即执行 SwiftUI 按钮操作,而不是单击释放时

    我想在 SwiftUI Button 中单击 点击按钮后立即调用该操作 我怎样才能实现这个 这是一种可能的方法 使用自定义ButtonStyle注入自定义触地动作 使用 Xcode 12 iOS 14 进行测试 struct Pressed
  • com.sun.ws.rs.ext.RuntimeDelegateImpl 错误

    请帮忙 目前我正在构建一个系统 允许一些Web服务 Axis2 调用restful jersey 1 12 场景是这样的 客户端 gt webservice Axis2 gt Restful services Jersey 1 12 在 t
  • 如何使用 SqlCommand 创建带有参数化数据库名称的数据库?

    简而言之 我有两个简单的助手 private SqlCommand CreateCommand string text SqlCommand cmd new SqlCommand cmd Connection connection cmd