sp_addextendedproc (Transact-SQL)

APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

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


This feature is in maintenance mode and may 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.

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)