是否存在#include的T-SQL等价物,以及为什么

时间:2012-10-03 19:53:23

标签: sql sql-server tsql

  

可能重复:
  Constants and Include files in TSQL

我一直在寻找与C“#include”指令相当的T-SQL。我没有找到,我想知道

  • MS是否可能不包含任何类型的SQL文件包含/加入执行
  • 如果没有,为什么
  • 如果没有,有没有更好的方法让我一次执行多个SQL文件而无需复制粘贴或手动预编译

对于那些对我的动机充满好奇的人,我正在编写一组类似的查询,我发现外部化常量(来自枚举表),预计算(制作一些测试输入表)和参数变量(这些子集我很方便)我正在努力。

据我所知,我不能真正使用存储过程或函数(而且我不喜欢用这些来污染我的数据库)。

2 个答案:

答案 0 :(得分:8)

您可以在SSMS中或通过sqlcmd实用程序(命令行)查看在SQLCMD模式下执行。有一个:r <file name>命令允许您在当前执行会话中包含外部文件。因此,如果您在较大的脚本顶部附近添加:r my_init_script.sql,则可能会实现您的目标。

请注意,这适用于SQL 2005及更高版本。

答案 1 :(得分:0)

您可以尝试使用存储过程。您将能够在每个命令中放置许多命令并使用参数来控制它们。此外,您可以根据需要串联调用不同的存储过程。如果你有一堆“常量”,你可以用一个表来存储它们,并根据需要选择它们。