我想根据一个表名生成这个表的创建语句,包括字段和索引,键等信息

iamzrsoft 2003-12-12 02:04:16
我去syscolumns中看了,可是不知数据类型在哪里,还有索引之类如何生成?谢谢
...全文
49 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamzrsoft 2003-12-13
  • 打赏
  • 举报
回复
再接着问一下,自增主键的信息在哪里取得?
zjcxc 2003-12-12
  • 打赏
  • 举报
回复
或:
--单个对象的脚本生成方法
查询分析器
--左侧的对象浏览器(没有的话按F8)
--右键你要复制的对象(表/视图/存储过程等)
--在新窗口中编写对象脚本
--创建
zjcxc 2003-12-12
  • 打赏
  • 举报
回复
--用下面这个存储过程

/*
在查询分析器中调用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,@password

if @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
return

lberr:
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
return

go

victorycyz 2003-12-12
  • 打赏
  • 举报
回复
查联机帮助,关键词: create table

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧