Umbraco删除无用Version

Umbraco会保存每次修改的草稿,这样的网页内容可以方便的回滚到以前的任意一个版本(Version),这是一个相当赞的功能。

我的网站大概不到两千条内容页,但是我最近查看数据库,数据库达到了800MB之在,一查看数据库中保存的Version 有一万8八条之多,cmsPropertyData表更是有记录三十万之巨。

虽然数据库记录很多,但是网站性能还是很不错的,但是我的网站内容基本不用回滚到以前版本,保存这些对我来说没有多少意义,所以决定删除这些Version。

Continue reading Umbraco删除无用Version

SqlServer 删除所有表

如果由于外键约束删除table失败,则先删除所有约束:

--/第1步**********删除所有表的外键约束*************************/

DECLARE c1 cursor for
select 'alter table ['+ object_name(parent_obj) + '] drop constraint ['+name+']; '
from sysobjects
where xtype = 'F'
open c1
declare @c1 varchar(8000)
fetch next from c1 into @c1
while(@@fetch_status=0)
begin
exec(@c1)
fetch next from c1 into @c1
end
close c1
deallocate c1

--/第2步**********删除所有表*************************/

use 数据库名(是要删除表的所在的那个数据库的名称)
GO
declare @sql varchar(8000)
while (select count(*) from sysobjects where type='U') > 0
begin
SELECT @sql='drop table ' + name
FROM sysobjects
WHERE (type = 'U')
ORDER BY 'drop table ' + name
exec(@sql) 
end

删除所有的存储过程同理可得,但不需要走第一步,只需将第2步的代码的where type=’U’ 改成 where type=’P’,drop table 改成 drop Procedure。

又写了删除数据保留架构的。。凑合用。。

USE [alumnus_cisisu_edu_cn]
GO

DECLARE @temp TABLE(tableName NVARCHAR(255));

INSERT INTO @temp(tableName)
SELECT Name  FROM SysObjects Where XType='U' ORDER BY Name;


declare @sql varchar(8000);
declare @tableName varchar(255);
while (select count(*) from @temp) > 0
begin
  SELECT @tableName= tableName FROM  @temp;
  
  DELETE  @temp WHERE  tableName=@tableName;
  set @sql = 'DELETE ' + @tableName
  ---print @sql
  exec(@sql) 
end

后来又重新写了一个 利用 sp_MSForEachTable 删除表数据保留结构的语句