怎样用SQL脚生成数据库结构 在2000中,建了一新库怎样用SQL脚生成数据库结构 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 右键数据库--〉所有任务--〉生成sql 脚本 sql200企业管理器 --右键要导出的数据库 --所有任务 --生成SQL脚本 --<常规>里选择"生成全部对象脚本"","在脚本文件中包含说明性标题"选上 --<设置格式>里,将"包含扩展属性",选上 --<选项>中,将"表脚本选项"中的内容全部选择上 --<选项>中,"安全性选项"是决定是否要包含创建数据库及用户权限等的设置,根据你的需要选择 --其他所有的选项保持默认值 --然后确定,将其保存成一个.sql文件 是有SQL脚本然后根据它生成数据库结构 declare @str varchar(8000) exec sp_getscript 'daliserver','','','test','sysobjects',@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问题 求最快速度能删除数据库中所有表的SQL语句 跪求请教一个问题 能不能用SQL语句生成一个指定的表,并且每个字段是从其它表中取得的,附语句.解决者加到200分.绝不食言. 数据库中如何一次删除数据库中的所有数据(除去系统表的数据)? 在多个数据库间建立表的视图,如何创建视图索引? 关于一个简单的查询问题,在线等待,急急急。。。 我使用了別人的一段存儲過程,可是無法得到output參數值??請高手看看!! 数据同步 序号关联小问题 如何调用网络中另一个PC的数据库? 各位高手接分
--右键要导出的数据库
--所有任务
--生成SQL脚本
--<常规>里选择"生成全部对象脚本"","在脚本文件中包含说明性标题"选上
--<设置格式>里,将"包含扩展属性",选上
--<选项>中,将"表脚本选项"中的内容全部选择上
--<选项>中,"安全性选项"是决定是否要包含创建数据库及用户权限等的设置,根据你的需要选择
--其他所有的选项保持默认值
--然后确定,将其保存成一个.sql文件
然后根据它生成数据库结构
exec sp_getscript 'daliserver','','','test','sysobjects',@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