扩展存储过程的执行特征

适用于:SQL Server

重要

在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 请改用 CLR 集成。

执行扩展存储过程具有以下特征:

  • 扩展存储过程函数在 Microsoft SQL Server 的安全上下文下执行。

  • 扩展存储过程函数在 SQL Server 的进程空间中运行。

  • 与执行扩展存储过程关联的线程和用于客户端连接的线程相同。

    重要

    在将扩展存储过程添加到服务器和授予其他用户执行权限之前,系统管理员应该彻底检查每个扩展存储过程以确保它不含有有害的或恶意的代码。

  • 加载扩展存储过程 DLL 后,DLL 将保留在服务器的地址空间中,直到 SQL Server 停止或管理员使用 DBCC DLL_name(FR企业版)显式卸载 DLL。

    可以使用 EXECUTE 语句从 Transact-SQL 执行扩展存储过程作为存储过程:

EXECUTE @retval = xp_extendedProcName @param1, @param2 OUTPUT  

参数

@ retval
返回值。

@ param1
输入参数。

@ param2
输入/输出参数。

注意

扩展存储过程提供性能增强和扩展 SQL Server 功能。 但是,由于扩展存储过程 DLL 和 SQL Server 共享相同的地址空间,问题过程可能会对 SQL Server 运行产生不利影响。 尽管扩展存储过程 DLL 引发的异常由 SQL Server 处理,但可能会损坏 SQL Server 数据区域。 作为安全预防措施,只有 SQL Server 系统管理员才能将扩展存储过程添加到 SQL Server。 应彻底测试这些过程,然后才能进行安装。

另请参阅

编写扩展存储过程
查询 SQL Server 中安装的扩展存储过程