生成sql server 数据库 脚本的 存储过程和调用
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
如果出现错误 请查看