对象层次结构语法 (Transact-SQL)
适用范围:SQL Server
支持对象层次结构语法的 sp_OAGetProperty
propertyname 参数和 sp_OASetProperty
methodname 参数sp_OAMethod
,类似于 Microsoft Visual Basic 的语法。 当使用该特殊语法时,这些参数具有以下通用格式。
语法
TraversedObject.PropertyOrMethod
参数
TraversedObject
存储过程中指定的 objecttoken 下的层次结构中的 OLE 对象。 使用 Visual Basic 语法指定返回对象的一系列集合、对象属性和方法。 序列中的每个对象说明符都必须用句点(.
) 分隔。
系列中的项可以是集合名。 使用下面的语法指定集合:
Collection("item")
需要双引号("
)。 不支持集合的 Visual Basic 感叹号 (!
) 语法。
PropertyOrMethod
TraversedObject 的属性或方法的名称。
若要在括号内指定所有索引或方法参数(导致所有索引或方法参数sp_OAGetProperty
sp_OASetProperty
,或sp_OAMethod
将被忽略)请使用以下语法:
PropertyOrMethod ( [ ParameterName := ] "parameter" [ , ... ] )
需要双引号("
)。 指定了所有位置参数后,才能指定命名参数。
注解
如果未 指定 TraversedObject , 则需要 PropertyOrMethod 。
如果未 指定 PropertyOrMethod , 则从 OLE 自动化存储过程返回 TraversedObject 作为对象令牌输出参数。
如果指定 PropertyOrMethod,将调用 TraversedObject 的属性或方法。 属性值或方法返回值作为 OLE 自动化存储过程的输出参数返回。
如果 TraversedObject 列表中的任一项未返回 OLE 对象,则会引发错误。
有关 Visual Basic OLE 对象语法的详细信息,请参阅 Visual Basic 文档。
有关返回代码的详细信息 HRESULT
,请参阅 sp_OACreate。
示例
下面是使用 SQL-DMO SQLServer 对象的对象层次结构语法的示例。
-- Get the AdventureWorks2022 Person.Address Table object.
EXEC @hr = sp_OAGetProperty @object,
'Databases("AdventureWorks2022").Tables("Person.Address")',
@table OUT
-- Get the Rows property of the AdventureWorks2022 Person.Address table.
EXEC @hr = sp_OAGetProperty @object,
'Databases("AdventureWorks2022").Tables("Person.Address").Rows',
@rows OUT
-- Call the CheckTable method to validate the
-- AdventureWorks2022 Person.Address table.
EXEC @hr = sp_OAMethod @object,
'Databases("AdventureWorks2022").Tables("Person.Address").CheckTable',
@checkoutput OUT