来自另一个查询的 sql server : how to execute a . sql?

标签 sql sql-server-2008

我有一个 .sql 脚本,其中包含许多适用于某些临时表的操作查询。此脚本需要运行两次,中间还有一些其他命令,即:

  • 从源 A
  • 加载临时表
  • 使用 do_stuff.sql处理它
  • 将结果移到某处。
  • 对源 B 重复步骤 1-3。

  • 蛮力方法是根据需要复制和粘贴 dostuff.sql。虽然这在技术上可行,但有更好的方法吗?
    我希望有一个像 RunThisSQL 'C:\do_stuff.sql' 这样的命令我还没有发现。
    更新
    嗯,已经大约 5 年了,我刚刚重新发现了这个老问题。我最近做了这个并制作了一个游标来循环通过主表。对于该主表中的每条记录,脚本使用主表设置的变量运行内部脚本。
    https://www.mssqltips.com/sqlservertip/1599/sql-server-cursor-example/

    最佳答案

    如果您使用 Visual Studio,您可以创建“Sql Server 数据库”项目。使用该项目,您可以创建脚本,让您以某种方式执行 *.sql 文件

     /*
    Post-Deployment Script Template                         
    --------------------------------------------------------------------------------------
     This file contains SQL statements that will be appended to the build script.       
     Use SQLCMD syntax to include a file in the post-deployment script.         
     Example:      :r .\myfile.sql                              
     Use SQLCMD syntax to reference a variable in the post-deployment script.       
     Example:      :setvar TableName MyTable                            
                   SELECT * FROM [$(TableName)]                 
    --------------------------------------------------------------------------------------
    */
    

    也可以看看。 http://candordeveloper.com/2013/01/08/creating-a-sql-server-database-project-in-visual-studio-2012/

    关于来自另一个查询的 sql server : how to execute a . sql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16676918/

    相关文章:

    java - 如果子查询的结果集列值为 NULL,则显示某个值

    mysql - 如何计算两个日期之间的天数,

    sql - 在 MS SQL Server 2008 中创建序列

    sql-server - 如何删除一个数据库中的多个存储过程

    sql-server - 在生产服务器 (SQL Server 2008) 中添加新列的步骤?

    MySQL - 以编程方式设置列顺序

    mysql - 在 MySQL 中分割 Varchar 字符串

    sql - 将列类型从 timestamp WITHOUT time zone 更改为 timestamp WITH time zone

    c# - 清理更改跟踪,无效表 anchor 不起作用,想法?

    sql - 与 GO 语句、未提交事务和更改过程混淆