【问题标题】:Does SQL Server provide a way to load and execute SQL files?SQL Server 是否提供加载和执行 SQL 文件的方法?
【发布时间】:2018-03-21 18:52:17
【问题描述】:

我有一组 .sql 文件,其中包含各种数据库对象的 ddl。

例如:

  1. 用户.sql
  2. Group.sql
  3. GroupUser.sql

有没有办法可以使用存储过程轻松/优雅地依次加载/执行这些文件?比如GroupUser.sql取决于UserGroup的存在,所以我需要按照上面列出的顺序执行.sql文件。

我知道我可以将上述所有.sql 脚​​本的内容连接到一个存储过程中,但我更愿意采用更模块化的方法。我也可以将每个脚本放入它自己的存储过程中,但我不想让我的应用程序数据库中的存储过程集合与 DDL 设置脚本混淆。

【问题讨论】:

  • 下面的堆栈答案解释了这一点。 stackoverflow.com/questions/2583517/…
  • 严格来说,SQL Server 甚至不知道.sql 文件是什么,更不用说如何处理它了。服务器只知道发送给它的命令。客户端工具对此更有用。

标签: sql-server tsql


【解决方案1】:

从 SSMS 转到“查询”菜单,然后选择“SQLCMD 模式”。在那里,您可以运行这样的命令。我一直在编写这样的东西。

use test
go

:r "D:\SomeDataDirectory\SomeSQLFile.sql"

编辑:没有看到您想在存储过程中执行此操作。这是一个有点冒险的提议。假设您有权执行它,您可以将相同的 SQLCMD 代码放入对 xp_cmdshell 的调用中,但在许多情况下,除非您在服务器上拥有类似管理员的权限,否则您不会选择这样做。

【讨论】:

    猜你喜欢
    • 2016-02-23
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多