我想根据一个表名生成这个表的创建语句,包括字段和索引,键等信息 查联机帮助,关键词: create table 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 --用下面这个存储过程/* 在查询分析器中调用sqldmo生成脚本--存储过程邹建 2003.07-----------------*//*--调用实例 declare @str varchar(8000) exec sp_getscript 'zj','','','xzkh_sa','地区资料',@str output print @str*/if exists(select 1 from sysobjects where id=object_id('sp_getscript') and objectproperty(id,'IsProcedure')=1) drop procedure sp_getscriptgocreate procedure sp_getscript @servername varchar(50) --服务器名 ,@userid varchar(50) --用户名,如果为nt验证方式,则为空 ,@password varchar(50) --密码 ,@databasename varchar(50) --数据库名称 ,@objectname varchar(250) --对象名 ,@re varchar(8000) output --返回脚本asdeclare @srvid int,@dbsid int --定义服务器、数据库集iddeclare @dbid int,@tbid int --数据库、表iddeclare @err int,@src varchar(255), @desc varchar(255) --错误处理变量--创建sqldmo对象exec @err=sp_oacreate 'sqldmo.sqlserver',@srvid outputif @err<>0 goto lberr--连接服务器if isnull(@userid,'')='' --如果是 Nt验证方式begin exec @err=sp_oasetproperty @srvid,'loginsecure',-1 if @err<>0 goto lberr exec @err=sp_oamethod @srvid,'connect',null,@servernameendelse exec @err=sp_oamethod @srvid,'connect',null,@servername,@userid,@passwordif @err<>0 goto lberr--获取数据库集exec @err=sp_oagetproperty @srvid,'databases',@dbsid outputif @err<>0 goto lberr--获取要取得脚本的数据库idexec @err=sp_oamethod @dbsid,'item',@dbid output,@databasenameif @err<>0 goto lberr--获取要取得脚本的对象idexec @err=sp_oamethod @dbid,'getobjectbyname',@tbid output,@objectnameif @err<>0 goto lberr--取得脚本exec @err=sp_oamethod @tbid,'script',@re outputif @err<>0 goto lberr--print @rereturnlberr: exec sp_oageterrorinfo NULL, @src out, @desc out declare @errb varbinary(4) set @errb=cast(@err as varbinary(4)) exec master..xp_varbintohexstr @errb,@re out select 错误号=@re, 错误源=@src, 错误描述=@desc returngo Sql Server中如何将日期转换为yyyy-mm格式 在WIN7旗般版中如何装SQLServer2005? 看看这个SQL语句怎么写?? 关于这种约束怎么做! Win CE 下的应用程序如何访问远程的数据库?? XML 转换成列表 各位大侠,请教个昨天面试的题目。 一个简单的sql语句问题 SOS:各位高手请帮忙,SQL 连接的问题 may you help me? 还是关于服务器同步的!自己做成功了的进!实际问题郁闷了几天了! 高分求解,PowerDesiner 为什么生成的用它生成的TEST DATA SCRIPT是乱码呢?
在查询分析器中调用sqldmo生成脚本--存储过程邹建 2003.07-----------------*//*--调用实例
declare @str varchar(8000)
exec sp_getscript 'zj','','','xzkh_sa','地区资料',@str output
print @str
*/
if exists(select 1 from sysobjects where id=object_id('sp_getscript') and objectproperty(id,'IsProcedure')=1)
drop procedure sp_getscript
go
create procedure sp_getscript
@servername varchar(50) --服务器名
,@userid varchar(50) --用户名,如果为nt验证方式,则为空
,@password varchar(50) --密码
,@databasename varchar(50) --数据库名称
,@objectname varchar(250) --对象名
,@re varchar(8000) output --返回脚本
as
declare @srvid int,@dbsid int --定义服务器、数据库集id
declare @dbid int,@tbid int --数据库、表id
declare @err int,@src varchar(255), @desc varchar(255) --错误处理变量--创建sqldmo对象
exec @err=sp_oacreate 'sqldmo.sqlserver',@srvid output
if @err<>0 goto lberr--连接服务器
if isnull(@userid,'')='' --如果是 Nt验证方式
begin
exec @err=sp_oasetproperty @srvid,'loginsecure',-1
if @err<>0 goto lberr exec @err=sp_oamethod @srvid,'connect',null,@servername
end
else
exec @err=sp_oamethod @srvid,'connect',null,@servername,@userid,@passwordif @err<>0 goto lberr--获取数据库集
exec @err=sp_oagetproperty @srvid,'databases',@dbsid output
if @err<>0 goto lberr--获取要取得脚本的数据库id
exec @err=sp_oamethod @dbsid,'item',@dbid output,@databasename
if @err<>0 goto lberr--获取要取得脚本的对象id
exec @err=sp_oamethod @dbid,'getobjectbyname',@tbid output,@objectname
if @err<>0 goto lberr--取得脚本
exec @err=sp_oamethod @tbid,'script',@re output
if @err<>0 goto lberr--print @re
returnlberr:
exec sp_oageterrorinfo NULL, @src out, @desc out
declare @errb varbinary(4)
set @errb=cast(@err as varbinary(4))
exec master..xp_varbintohexstr @errb,@re out
select 错误号=@re, 错误源=@src, 错误描述=@desc
returngo