gpt4 book ai didi

sql-server - 在 SQL 查询中运行 .sql 文件

转载 作者:行者123 更新时间:2023-12-04 23:59:03 24 4
gpt4 key购买 nike

我有一个 SQL 脚本,需要在大约 20 个不同的数据库上运行。

我基本上只需要能够运行一些 SQL,然后让它从磁盘加载并运行一个文件,执行更多 SQL,再次运行相同的脚本,等等。

我希望制作一个基本上如下所示的 SQL 脚本:

use database1
go
exec c:\release.sql
go

use database2
go
exec c:\release.sql
go

use database3
go
exec c:\release.sql
go

- 等等....

我在网上看了一堆,找到了一种在批处理文件中使用 sqlcmd 执行类似操作的方法,但它不起作用,我也不知道如何以这种方式切换数据库。

万分感谢!

最佳答案

您可以将管理工作室切换到 sqlcmd 模式(查询菜单),然后使用 :r script.sql 运行脚本

要在动态生成的数据库列表上执行此操作,您必须执行一些 sqlcmd 技巧:

  • 将输出设置为文件
  • 生成执行命令
  • 将输出设置为标准输出
  • 执行文件
  • 删除临时文件

  • 我假设在这个例子中文件 script.sql 存在于 c:\temp .请注意 GO语句在脚本中很重要,否则 sqlcmd 解析器会混淆。
    :OUT $(TEMP)\db.sql
    declare @script nvarchar(max)
    select @script = isnull(@script, '')
    + 'use ' + name + char(13) + char(10)
    + ':r c:\temp\script.sql' + char(13) + char(10)
    from sys.databases
    where name like N'%[_]db'
    print @script

    GO

    :OUT stdout
    :r $(TEMP)\db.sql

    GO

    !!del $(TEMP)\db.sql /s /q

    关于sql-server - 在 SQL 查询中运行 .sql 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28331468/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com