USE [db_datadown]
GO /****** Object: StoredProcedure [dbo].[GetTBScript] Script Date: 03/05/2015 09:57:47 ******/
SET ANSI_NULLS ON
GO SET QUOTED_IDENTIFIER ON
GO CREATE PROC [dbo].[GetTBScript](
@DBName VARCHAR(20),--表所在的数据库名
@TBname VARCHAR(255),--要生成脚本的表名
@Sa VARCHAR(20),--用户名
@pwd VARCHAR(255),--密码
@servername VARCHAR(255),--服务器名称
@str VARCHAR(4000) output)
AS
DECLARE @obj INT,@r INT,@objD INT ,@objT INT
DECLARE @Result INT
DECLARE @L VARCHAR(100)
SET @Result=0
exec @r=sp_OaCreate 'SQLDMO.SQLServer',@obj OUT
IF @r=0
BEGIN
EXEC @r=sp_OAMethod @obj,'Connect',NULL,@servername,@Sa,@pwd
IF @r=0
BEGIN
SET @L='Databases("'+@DBName+'")'
EXEC @r = sp_OAGetProperty @obj,@L,@objd OUTPUT
IF @r=0
BEGIN
SET @L='Tables("'+@TBname+'")'
EXEC @r=sp_OAgetProperty @objD,@L,@objT OUT
IF @r=0
BEGIN
EXEC @r=sp_OaMethod @objT,'Script',@str output,5
IF @r=0
BEGIN
set @Result=1
END
END
END
END
END print @str RETURN @Result; GO
调用 代码
USE [db_datadown]
GO DECLARE @return_value int,
@str varchar(4000) EXEC @return_value = [dbo].[GetTBScript]
@DBName = N'FinChinaData',
@TBname = N'AssetAL',
@Sa = N'sa',
@pwd = N'zzdskj',
@servername = N'.',
@str = @str OUTPUT SELECT @str as N'@str' SELECT 'Return Value' = @return_value GO
如果出现错误 请查看