将数据库名称设置为 SQL 中的变量

2024-04-16

目前,我正在根据一些业务规则在一个数据库到另一个数据库之间进行一些数据迁移。

我正在编写这个巨大的脚本,其中多次引用这两个数据库。问题是这种数据迁移目前正在开发中,在某些时候我将需要在生产中使用两个不同的数据库来完成它。

而不是像这样直接引用数据库名称

Insert Into Database2.dbo.Table1    
Select * from Database1.dbo.Table1

我想以某种方式在脚本开始时引用数据库。这样当我更改数据库时我可以只更改一个变量。

那可能吗?


Use SQLCMD 变量 http://msdn.microsoft.com/en-us/library/ms188714.aspx:

:setvar dbfrom database1
:setvar dbto database2

Insert into [$(dbto)].dbo.Table1
select * from [$(dbfrom)].dbo.Table2;

此语法适用于 sqlcmd.exe(来自脚本)以及 Management Studio,请参阅使用查询编辑器编辑 SQLCMD 脚本 http://msdn.microsoft.com/en-us/library/ms174187.aspx。脚本还允许您从命令行设置变量:

sqlcmd /E /S server /i script.sql /v dbfrom=database1 /v dbto=database2

我也有一个允许您使用应用程序中的 sqlcmd 变量和脚本的库 http://code.google.com/p/dbutilsqlcmd/可作为 Google 代码上的源代码。

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

将数据库名称设置为 SQL 中的变量 的相关文章

随机推荐

  • Python、Brew 和 MySQLdb

    我一直在通过brew安装运行python 我用安装工具安装了 mysql python Egg 根据 mysql python 说明进行标准安装 并将其安装到 usr local lib python2 7 site packages 处理
  • USB接口条码扫描器

    不完全是一个编程问题 但很接近 无论如何我都会试试运气 The 键盘楔子 扫码机插入 读者之间的翻译装置 和键盘 数据发送通过 楔形看起来就像是被输入的 电脑 而键盘 本身仍保持完整功能 因为电脑使用键盘 楔子无法区分 在输入的数据之间 扫
  • 为什么reinterpret_cast不是constexpr?

    考虑以下片段 static constexpr uint8 t a 0 static constexpr const int8 t b reinterpret cast
  • 由 pandoc 从 .md 转换而来的 Beamer 幻灯片中的绘图非常大

    R 生成的正态图chunksR 中的 Markdown 文件在转换为 html 幻灯片或 pdf 时完全相同 但是 当它们通过以下方式转换为投影仪幻灯片时pandoc t beamer ex md V theme Warsaw o beam
  • SVG路径定位

    我正在制作脸部 SVG 无法将眉毛固定在正确的位置 请指教
  • Ado.Net 实体:对象不显示链接成员(外键)

    我有一个简单的数据库方案 用户 帐户 用户与帐户具有一对多关系 我已经生成了 ado net 实体数据模型 我可以创建用户和帐户 甚至可以将它们链接在一起 在数据库中 account user id 已正确填写 因此理论上我应该能够通过实体
  • 具有 DNS 验证的证书陷入待验证状态

    我已将我的域转移到 Route53 并且我希望 Amazon Certificate Manager 为该域颁发证书 我按照控制台中的步骤颁发证书 确实出现了 在 Route53 中创建记录 按钮 我确实按它 它说 成功 我确实看到在 Ro
  • 如何在numpy中设置最大输出宽度?

    我正在使用 Jupyter 笔记本 我有一个相当宽的屏幕 但是显示的输出 例如 当我打印numpyarray 的格式就像屏幕很窄一样 我找到了一种增加单元格宽度的方法 from IPython core display import HTM
  • 用户主目录中的 log4j 日志文件

    我正在开发一个可以在 OSX 和 Windows 上运行的应用程序 我希望将日志写入用户主目录 对于 OSX 它将位于 Users Library Application Support MyApp log 目录下 而在 Windows 下
  • 有没有可靠的方法来检测 io.js 或 node.js 是否正在运行?

    我可以推断 node js 或 io js 是否正在运行的唯一方法是检查process versions node 在 io js 中 我得到 1 0 4 我确信有更好的方法 有人知道吗 现在最可靠的解决方案是执行node h看看它是否包含
  • 静态元素交互

    我有以下代码 Enabled id gt let removal null if this props disabled removal span gt this onDelete id gt x span return removal 它
  • 新:类型“_InternalLinkedHashMap ”不是类型“DocumentSnapshot”的子类型

    抱歉 我现在正在编程 但我正在学习 请帮助我 我被这个问题困住了 这是我的第一个应用程序 几乎已经完成 因此需要类似的帮助才能完成它 我收到此错误 类型 InternalLinkedHashMap 不是类型 DocumentSnapshot
  • 何时添加组件类与用户控件?

    我有一个总体想法 并且有一些明显的情况 但对我来说也有一些灰色区域 什么时候最好使用从组件扩展以及什么时候最好创建用户控件 这与我试图解决的特定工作问题有关 但具体问题并不重要 这个问题的一般答案对我来说就足够了 在 WPF 和 Windo
  • 链接器错误已定义

    我正在制作一个nodejs插件 我的 Visual Studio 项目中有 5 个文件 comm h cc node main cc util h cc 我将它与图书馆链接node lib node main cc有一个功能 v8 Hand
  • 如何将 SSL 证书添加到 Bluemix java Cloud Foundry 应用程序?

    我正在使用 Spring Boot Java JDK 1 8 Java MongoDB 驱动程序和 MongoDB 开发微服务 我已经在 Bluemix 上创建了 MongoDB 实例 并且正在从 Java 微服务连接到该实例 Bluemi
  • 根据可能不存在于所有值上的分隔符将 pandas 列分成两部分

    我的数据框的一列看起来像这样 application blah 3 14 xyz 5 2 abc 代表软件 版本 我正在努力实现这样的目标 application name ver blah 3 14 blah 3 14 xyz 5 2 x
  • FormBorderStyle为NONE时的表单高度问题

    我有一个无边框表单 FormBorderStyle None 高度为23像素 在设计器中设置 当 NET 在运行时绘制我的表单时 它会绘制它38像素高 由于某种原因它增加了标题栏的高度 MessageBox Show this Height
  • 如何从意图中获取额外的日期?

    我正在打包一个意图 我添加的附加项之一是日期对象 如下所示 intent putExtra DATE EXTRA t getDate 后来 当我阅读附加内容时 我尝试像这样获取日期 this date new Date intent get
  • 修改 Spark RDD foreach 内的集合

    我试图在迭代 RDD 的元素时向映射添加元素 我没有收到任何错误 但修改没有发生 直接添加或迭代其他集合一切正常 scala gt val myMap new collection mutable HashMap String String
  • 将数据库名称设置为 SQL 中的变量

    目前 我正在根据一些业务规则在一个数据库到另一个数据库之间进行一些数据迁移 我正在编写这个巨大的脚本 其中多次引用这两个数据库 问题是这种数据迁移目前正在开发中 在某些时候我将需要在生产中使用两个不同的数据库来完成它 而不是像这样直接引用数