sp_addextendedproc (Transact-SQL)

THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Registers the name of a new extended stored procedure to Microsoft SQL Server.


This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Use CLR Integration instead.

|Applies to: SQL Server ( SQL Server 2008 through current version).|

Topic link icon Transact-SQL Syntax Conventions


sp_addextendedproc [ @functname = ] 'procedure' ,   
     [ @dllname = ] 'dll'  


[ @functname = ] 'procedure'
Is the name of the function to call within the dynamic-link library (DLL). procedure is nvarchar(517), with no default. procedure optionally can include the owner name in the form owner.function.

[ @dllname = ] 'dll'
Is the name of the DLL that contains the function. dll is varchar(255), with no default. It is recommended that you specify the complete path of the DLL.

Return Code Values

0 (success) or 1 (failure)

Result Sets



After an extended stored procedure is created, it must be added to SQL Server by using sp_addextendedproc. For more information, see Adding an Extended Stored Procedure to SQL Server.

This procedure can be run only in the master database. To execute an extended stored procedure from a database other than master, qualify the name of the extended stored procedure with master.

sp_addextendedproc adds entries to the sys.objects catalog view, registering the name of the new extended stored procedure with SQL Server. It also adds an entry in the sys.extended_procedures catalog view.


Existing DLLs that were not registered with a complete path will not work after upgrading to SQL Server 2017. To correct the problem, use sp_dropextendedproc to unregister the DLL, and then reregister it with sp_addextendedproc, specifying the complete path.


Only members of the sysadmin fixed server role can execute sp_addextendedproc.


The following example adds the xp_hello extended stored procedure.

USE master;  
EXEC sp_addextendedproc xp_hello, 'c:\xp_hello.dll';  

See Also

EXECUTE (Transact-SQL)
GRANT (Transact-SQL)
REVOKE (Transact-SQL)
sp_dropextendedproc (Transact-SQL)
sp_helpextendedproc (Transact-SQL)
System Stored Procedures (Transact-SQL)