扩展存储过程的执行特征

重要说明重要提示

后续版本的 Microsoft SQL Server 将删除该功能。请不要在新的开发工作中使用该功能,并尽快修改当前还在使用该功能的应用程序。请改用 CLR 集成。

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

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

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

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

    安全说明安全说明

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

加载扩展存储过程 DLL 之后,DLL 将在服务器的地址空间中保持加载状态,直到 SQL Server 停止或管理员使用 DBCC DLL_name (FREE) 显式卸载该 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 添加扩展存储过程。应彻底测试这些过程,然后才能进行安装。