sql-server - ";1"在 MS SQL 中调用存储过程后?

标签 sql-server sql-server-2008 stored-procedures

这个问题在这里已经有了答案:





SQL Server: Why would i add ";1" to the end of a stored procedure name?

(3 个回答)


4年前关闭。




对很久以前某人创建的旧报告进行一些维护。我注意到报告的数据源是一个存储过程。 sproc 调用如下所示:

EXEC someStoredProc;1

我以前从未见过“;1”。只是好奇它到底是什么?网上找不到任何文档。如果我将“1”切换到任何其他数字,SQL 会抛出错误“找不到存储过程‘someStoredProc’”。但是将其切换回“1”,它就可以工作了。似乎对输出没有任何影响。这是什么?

我注意到我可以将“;1”放在任何存储过程之后,并且它的执行看起来与没有它时一样。

如果有人可以为我解开这个谜 - 谢谢!

最佳答案

这些被称为 Numbered Procedures , 已deprecated since 2005 (但仍然通过 SQL Server 2012 得到一些支持)

在 SQL Server 中,您可以使用 ;# 创建不同版本的存储过程。后缀。这些通常可用于重载存储过程,通过创建另一个接受不同数量参数或行为不同等的版本。

关于sql-server - ";1"在 MS SQL 中调用存储过程后?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45088240/

相关文章:

java - 如何将 JDBC4PreparedStatement 与需要 OUT 参数的 MySQL 存储过程一起使用?

linq - SQL 存储过程中的可选参数

SQL 计算平均值

sql - 如何替换sql server中的第n个字符

sql-server - 即席只读查询是否存储在 SQL Server 事务日志中?

java - Oracle 存储过程在 Linux 上运行时失败,在 Windows 上工作

c# - 同时将 Entity Framework 与 SQL Server 和 SQLite 数据库一起使用

sql - 重构循环 SQL 插入

sql-server - 在 SQL Server 中合并/扩展相同类型的记录

sql - SQL Server 2008 非聚集索引是否包含聚集索引字段?