OLE Automation Objects in Transact-SQL - SQL Server - Microsoft Docs
OLE Automation Objects in Transact-SQL - SQL Server - Microsoft Docs
APPLIES TO: SQL Server Azure SQL Database Azure SQL Data Warehouse Parallel Data Warehouse
Transact-SQL includes several system stored procedures that allow OLE Automation objects to be referenced in
Transact-SQL batches, stored procedures, and triggers. These system stored procedures run as extended stored
procedures, and the OLE Automation objects that are executed through the stored procedures run in the address space
of an instance of the SQL Server Database Engine in the same way that an extended stored procedure runs.
The OLE Automation stored procedures enable Transact-SQL batches to reference SQL-DMO objects and custom OLE
Automation objects, such as objects that expose the IDispatch interface. A custom in-process OLE server that is created
by using Microsoft Visual Basic must have an error handler (specified with the On Error GoTo statement) for the
Class_Initialize and Class_Terminate subroutines. Unhandled errors in the Class_Initialize and Class_Terminate
subroutines can cause unpredictable errors, such as an access violation in an instance of the Database Engine. Error
handlers for other subroutines are also recommended.
The first step when using an OLE Automation object in Transact-SQL is to call the sp_OACreate system stored procedure
to create an instance of the object in the address space of the instance of the Database Engine.
After an instance of the object has been created, call the following stored procedures to work with the properties,
methods, and error information related to the object:
When there is no more need for the object, call sp_OADestroy to deallocate the instance of the object created by using
sp_OACreate.
OLE Automation objects return data through property values and methods. sp_OAGetProperty and sp_OAMethod
return these data values in the form of a result set.
The scope of an OLE Automation object is a batch. All references to the object must be contained in a single batch,
stored procedure, or trigger.
When it references objects, the SQL Server OLE Automation objects support traversing the referenced object to other
objects that it contains. For example, when using the SQL-DMO SQLServer object, references can be made to databases
and tables contained on that server.
Related Content
Object Hierarchy Syntax (Transact-SQL)
sp_OACreate (Transact-SQL)
sp_OAGetProperty (Transact-SQL)
https://docs.microsoft.com/en-us/sql/relational-databases/stored-procedures/ole-automation-objects-in-transact-sql?view=sql-server-2017 1/2
30/4/2019 OLE Automation Objects in Transact-SQL - SQL Server | Microsoft Docs
sp_OASetProperty (Transact-SQL)
sp_OAMethod (Transact-SQL)
sp_OAGetErrorInfo (Transact-SQL)
sp_OADestroy (Transact-SQL)
https://docs.microsoft.com/en-us/sql/relational-databases/stored-procedures/ole-automation-objects-in-transact-sql?view=sql-server-2017 2/2