【问题标题】:TSQL call query from wtihin a query in same database来自同一数据库中的查询中的 T SQL 调用查询
【发布时间】:2015-05-26 17:11:56
【问题描述】:

我在星期一早上指责这个,但是有什么方法可以从查询中运行查询.....

没有类似的命令

EXEC sp_ myOtherQuery.sql

我意识到这缺乏各种错误处理,只是想知道是否有某种方法可以做到这一点。

【问题讨论】:

  • 这里有EXEC <stored-procedure-name> <parameters>——错过了.sql
  • 虽然它不是一个 SP,但 SP_ 是对默认过程的调用,在重命名表时可能能够调用查询以像 sp_rename 一样运行。
  • 啊,对不起。我的眼睛错过了空间。 SQL 通常不喜欢直接处理文件。
  • SQL 作为产品并不真正与 .sql 文件交互。这就是 SSMS 保存文件的方式。
  • 有可能吗?是的。容易做还是推荐?编号stackoverflow.com/questions/241925/…

标签: tsql stored-procedures sql-server-2008-r2


【解决方案1】:

我有类似的情况并使用了类似的东西:

declare @cmd nvarchar(max)
declare @spname nvarchar(256)
set @spname=<your_database_name> + '.dbo.' + 'sp_executesql'
set @cmd='your query text'
execute @spname @cmd

【讨论】:

  • 所以只能叫SP?好吧,我想我看到了,让我试一试。
【解决方案2】:

如果您在 SQL Server Management Studio 中执行此操作:

使用查询菜单打开SQLCMD 模式。然后使用 :r 指令将另一个 sql 文件包含到您正在编辑的文件中。

--sql statements
:r "C:\Full\Path\To\Sql\File.sql"
--More sql statements

这实际上是一个包含指令。 sql 文件的内容将在运行时插入到您的脚本中,整个过程将作为一个整体运行。

这仅适用于 SSMS。这不是您可以在存储过程中执行的操作。

【讨论】:

    猜你喜欢
    • 2015-11-20
    • 1970-01-01
    • 1970-01-01
    • 2016-08-13
    • 1970-01-01
    • 2015-07-31
    • 2019-02-01
    • 1970-01-01
    • 2017-09-30
    相关资源
    最近更新 更多