我有一个数据库是SQL的,我想他他的所有表拷贝一份下来(不要数据)
答案:2 悬赏:30
解决时间 2021-12-28 23:26
- 提问者网友:空白
- 2021-12-28 14:19
不要表里面的数据,只要表结构
最佳答案
- 二级知识专家网友:猖狂的痴情人
- 2021-12-28 14:56
查询出所有表的表结构。。。
SELECt
表名 = Case When A.colorder=1 Then D.name Else '' End,
表说明 = Case When A.colorder=1 Then isnull(F.value,'') Else '' End,
字段序号 = A.colorder,
字段名 = A.name,
字段说明 = isnull(G.[value],''),
标识 = Case When COLUMNPROPERTY( A.id,A.name,'IsIdentity')=1 Then '√'Else '' End,
主键 = Case When exists(SELECT 1 FROM sysobjects Where xtype='PK' and parent_obj=A.id and name in (
SELECt name FROM sysindexes WHERe indid in( SELECt indid FROM sysindexkeys WHERe id = A.id AND colid=A.colid))) then '√' else '' end,
类型 = B.name,
占用字节数 = A.Length,
长度 = COLUMNPROPERTY(A.id,A.name,'PRECISION'),
小数位数 = isnull(COLUMNPROPERTY(A.id,A.name,'Scale'),0),
允许空 = Case When A.isnullable=1 Then '√'Else '' End,
默认值 = isnull(E.Text,'')
FROM
syscolumns A
Left Join
systypes B
On
A.xusertype=B.xusertype
Inner Join
sysobjects D
On
A.id=D.id and D.xtype='U' and D.name<>'dtproperties'
Left Join
syscomments E
on
A.cdefault=E.id
Left Join
sys.extended_properties G
on
A.id=G.major_id and A.colid=G.minor_id
Left Join
sys.extended_properties F
On
D.id=F.major_id and F.minor_id=0
Order By A.id,A.colorder
SELECt
表名 = Case When A.colorder=1 Then D.name Else '' End,
表说明 = Case When A.colorder=1 Then isnull(F.value,'') Else '' End,
字段序号 = A.colorder,
字段名 = A.name,
字段说明 = isnull(G.[value],''),
标识 = Case When COLUMNPROPERTY( A.id,A.name,'IsIdentity')=1 Then '√'Else '' End,
主键 = Case When exists(SELECT 1 FROM sysobjects Where xtype='PK' and parent_obj=A.id and name in (
SELECt name FROM sysindexes WHERe indid in( SELECt indid FROM sysindexkeys WHERe id = A.id AND colid=A.colid))) then '√' else '' end,
类型 = B.name,
占用字节数 = A.Length,
长度 = COLUMNPROPERTY(A.id,A.name,'PRECISION'),
小数位数 = isnull(COLUMNPROPERTY(A.id,A.name,'Scale'),0),
允许空 = Case When A.isnullable=1 Then '√'Else '' End,
默认值 = isnull(E.Text,'')
FROM
syscolumns A
Left Join
systypes B
On
A.xusertype=B.xusertype
Inner Join
sysobjects D
On
A.id=D.id and D.xtype='U' and D.name<>'dtproperties'
Left Join
syscomments E
on
A.cdefault=E.id
Left Join
sys.extended_properties G
on
A.id=G.major_id and A.colid=G.minor_id
Left Join
sys.extended_properties F
On
D.id=F.major_id and F.minor_id=0
Order By A.id,A.colorder
全部回答
- 1楼网友:情战辞言
- 2021-12-28 16:27
这个多了,如果老空间和新空间的数据库是一样的(如都是sqlserver的),一般情况下使用数据库的备份恢复到新空间的数据库即可,如果不是同一种数据库,这个相对较为麻烦,一般情况下在旧空间使用每张表采用文本文件方式进行数据导出,然后在新空间将每个表的文本文件数据导入到新空间的每张表里,如旧空间数据库是sqlserver,一般采用sqlserver自带的bcp工具将每张表数据导出成文本文件,然后将这些文本文件以asc码方式传输到新空间里去,假设新空间数据库是oracle的,则在新空间使用oracle的自带文本导入工具sqlldr将来自sqlserver的文本文件数据导入到oracle的数据库对应的表里即可。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯