命名存储过程 Microsoft 强烈建议不要以 sp_ 为前缀创建任何存储过程。sp_ 前缀是 SQL Server 用来指定系统存储过程的。您选择的名称可能会与以后的某些系统过程发生冲突。如果应用程序引用了不符合架构的名称,而您自己的过程名称与系统过程名称相冲突,则该名称将绑定到系统过程而非您自己的过程,这将导致应用程序中断。
命名存储过程 Microsoft 强烈建议不要以 sp_ 为前缀创建任何存储过程。sp_ 前缀是 SQL Server 用来指定系统存储过程的。您选择的名称可能会与以后的某些系统过程发生冲突。如果应用程序引用了不符合架构的名称,而您自己的过程名称与系统过程名称相冲突,则该名称将绑定到系统过程而非您自己的过程,这将导致应用程序中断。
USE AdventureWorks; GO CREATE PROCEDURE dbo.sp_who AS SELECT FirstName, LastName FROM Person.Contact; GO EXEC sp_who; EXEC dbo.sp_who; GO DROP PROCEDURE dbo.sp_who; GO
临时存储过程 专用和全局临时存储过程与临时表类似,都可以通过向该过程名称添加 # 和 ## 前缀的方法进行创建。# 表示本地临时存储过程,## 表示全局临时存储过程。SQL Server 关闭后,这些过程将不复存在。
SQL Server 的早期版本不支持重用 Transact-SQL 语句或批处理的执行计划,当连接到这些早期版本时,临时存储过程很有用。当连接到 SQL Server 2000 或更高版本的应用程序时,应使用 sp_executesql 系统存储过程,而非临时存储过程。只有创建了本地临时过程的连接才可以执行它。在连接关闭之后,临时过程将被自动删除。