select where>2008年的 into 新表改表名
解决方案 »
- 时间模糊查询
- 怎样定时执行一个表一个字段的统计啊?
- 两台机拷贝数据。。。
- 关于全文检索的几个疑问
- 这样的存储过程可以吗?CREATE PROCEDURE name(@列 char,@条件 char,@值 nvarchar) AS select * from 表 where @列@条件@值 return
- select into 的问题
- 保证表数据不重复
- 一个建立了非簇索引和一个Bit类型的字段进行比较,哪一个查询速度更快?
- 各位高手,100分求教
- 请教:如何在ms sqlserver 2k中生成如下特定字段?
- 怎样把一个varchar转化为时间?
- t-SQL 急求解决:关于SQLSERVER的表复制的问题!!!!
create table #tb(表名 sysname,记录数 int
,保留空间 varchar(10),使用空间 varchar(10)
,索引使用空间 varchar(10),未用空间 varchar(10))insert into #tb exec sp_MSForEachTable 'EXEC sp_spaceused ''?'''select * from #tb
order by cast(left(使用空间,len(使用空间)-3) as numeric)drop table #tb从上面得到哪个表占用空间最大?可以考虑把大表的数据删除或转移,
下一步要进行的动作是收缩数据和收缩表,尽量晚上空闲时间做收缩
压缩数据库:
DBCC SHRINKDATABASE (数据库名)压缩表:
DBCC UPDATEUSAGE ('数据库名', '表名', '表主键')
转自:http://tech.c114.net/501/a239340.html--------------------------------------------------------
我就是想实现这样的功能。该如何弄呢?还有正式库运行的时候可能表结构,视图,函数,触发器,存储过程等有可能会变化,如何让历史数据库和正式运行库结构一致呢?
create table #tb(表名 sysname,记录数 int
,保留空间 varchar(10),使用空间 varchar(10)
,索引使用空间 varchar(10),未用空间 varchar(10)) insert into #tb exec sp_MSForEachTable 'EXEC sp_spaceused ''?''' select * from #tb
order by cast(left(使用空间,len(使用空间)-3) as numeric) drop table #tb 从上面得到哪个表占用空间最大?可以考虑把大表的数据删除或转移,
下一步要进行的动作是收缩数据和收缩表,尽量晚上空闲时间做收缩
压缩数据库:
DBCC SHRINKDATABASE (数据库名) 压缩表:
DBCC UPDATEUSAGE ('数据库名', '表名', '表主键')
---------------------------------------------------------------------------
谢谢。你的方法确实非常好。不过我这边的需求可能比较麻烦些。谢谢啊。
1、在现在的库上生成建库角本
2、用脚本生成新库
3、从老库中把2008-1-1后的数据导入到新库中
4、启用新库即可
-------------------------------------------------
谢谢 happyflystone , 我们的库有很多外键约束,比如 A是主表, B依赖 A,C依赖B
直接导入数据可能会出问题。而且那样还得整理出来最所有表之间的级联关系。。
declare @tbname varchar(100),@sql varchar(8000)
Declare Cur1 Cursor Local Read_Only Fast_Forward For
--把主表名称改成你的主表表名
select a.name from sysobjects a, syscolumns b where a.id=b.id and b.name='LAB_NUM' and a.xtype='u' and a.name<>'主表名称'
Open Cur1
Fetch Next From Cur1 Into @tbname
While @@Fetch_Status = 0
Begin
Set @sql = 'delete '+@tbname+' where datediff(dd,日期字段,''2008-01-01'')>0'
Execute(@sql)
Fetch Next From Cur1 into @tbname
End
Close Cur1
Deallocate Cur1--然后把主表2008年以前的数据删掉。--如果正式库又增大了,还是这样,把2008-01-01换成你要的日期就可以了。