注册 登录
编程论坛 SQL Server论坛

如何取得一個只有資料表結構的數據庫?

洋葱屁股 发布于 2007-02-21 11:55, 1045 次点击

我們的數據庫有30GB,LOG檔有10GB,裡面有很多數據.
請問怎麼樣可以取得一個只有資料表結構,無任何資料的,檔案很小的數據庫呢??

15 回复
#2
棉花糖ONE2007-02-21 14:01
select b.name from sysindexes a,sysobjects b  where rows=0  and xtype='u' and a.id=b.id
#3
洋葱屁股2007-02-23 10:02
樓上說的不是我的意思,這樣只是取的物件名稱,我需要的是一個數據庫!!!!mdf文件!!!
#4
棉花糖ONE2007-02-24 13:16

楼主是想取到数据库所对应的数据文件吗

#5
feeless2007-02-25 13:40
以下是引用棉花糖ONE在2007-2-24 13:16:31的发言:

楼主是想取到数据库所对应的数据文件吗

应该是其中一个表里的数据吧

#6
Kendy1234562007-02-25 16:50

楼主需要的这么个东西:
数据库里表的结构都不变 但是所有的表的所有行都删掉
他就要个空的只带表结构的数据库

备份。。。恢复成另外名字。。。
对每张表truncate

#7
洋葱屁股2007-02-27 08:42
看來終於有人明白了我的意思,這一點就已經很欣慰啦~~呵呵

疑問:
1.對每張表truncate最快的方式是什麼?
2.log檔有10GB怎麼辦啦?
#8
bygg2007-02-27 09:07
truncate是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.. 注意它和delete,drop的区别.
定期rebuild索引可以提高索引效率和释放存贮区。
#9
初学Delphi2007-02-27 13:00

表多不多啊?
你从数据库里取出用户表
select name from sysobjects where type='u'
然后用个循环
创建到新的数据库里不行么?
select * into 新数据库..表名 from 表名 where 1<>1
“表名”你用变量
循环一次给他重新赋值

#10
棉花糖ONE2007-02-27 13:11
select 'trunc table '+name from sysobjects where type='u'
生成脚本
用osql执行下就好了,不要用循环
#11
Kendy1234562007-02-27 17:42
存储过程 视图 函数 什么的都不要了么
#12
洋葱屁股2007-02-28 15:06

現在思路應該是這樣的
不過:
1.SELECT NAME FROM SYSOBJECTS WHERE TYPE='U',查詢結果不是所有表的名字,為什麼啊?
2.
下面的語法有錯誤,請幫忙看看
DECLARE @Name VARCHAR(50)
DECLARE S1 CURSOR FOR

SELECT NAME FROM SYSOBJECTS
OPEN S1
FETCH NEXT FROM S1
INTO @NAME
WHILE @@FETCH_STATUS=0
BEGIN
TRUNCATE TABLE @NAME
FETCH NEXT FROM S1
INTO @NAME
END

CLOSE S1
DEALLOCATE S1

#13
reniking2007-02-28 15:22
选中所有表,然后生成sql脚本,新建一个数据库,再在这个新数据库里用查询分析器执行这个脚本文件,就可以把这些表结构都填到新数据库里了。
视图存储过程等也都可以这样做。
不知道lz是这个意思不。
#14
棉花糖ONE2007-02-28 15:43
TRUNCATE TABLE @NAME
改成
exec('TRUNCATE TABLE '+ @NAME)
#15
洋葱屁股2007-02-28 15:55
以下是引用棉花糖ONE在2007-2-27 13:11:24的发言:
select 'trunc table '+name from sysobjects where type='u'
生成脚本
用osql执行下就好了,不要用循环

這個方法不錯!!

#16
Kendy1234562007-02-28 16:01
以下是引用reniking在2007-2-28 15:22:49的发言:
选中所有表,然后生成sql脚本,新建一个数据库,再在这个新数据库里用查询分析器执行这个脚本文件,就可以把这些表结构都填到新数据库里了。
视图存储过程等也都可以这样做。
不知道lz是这个意思不。

这个办法好 在企业管理器里面直接生成脚本 然后在查询分析器运行

1