如何直接调用存储过程或DLL中的函数生成SQL脚本?

在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

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus