在SQL SERVER中,如何直接调用存储过程或DLL中的函数生成SQL脚本?
---------------------------------------------------------------
調用SQL-DMO組件。
一個小示例,把Northwind..Orders這個table scripts出來。
DECLARE @object int
DECLARE @hr int
DECLARE @src varchar(255), @desc varchar(255)
Declare @objDatabase int,@objTable int,@Scrip varchar(8000)
EXEC @hr = sp_OACreate 'SQLDMO.SQLServer', @object OUT
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
RETURN
END
EXEC @hr = sp_OAMethod @object, 'Connect', NULL, 'SQLServer名字','用戶名'
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
EXEC @hr = sp_OAMethod @object, 'Databases', @objDatabase OUTPUT,'Northwind'
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
EXEC @hr = sp_OAMethod @objDatabase, 'Tables', @objTable OUTPUT,'Orders'
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @objDatabase
RETURN
END
EXEC @hr = sp_OAMethod @objTable, 'Script', @Scrip OUTPUT ,4
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
Print @Scrip