虫网首页 | 虫网博客 | 翻唱专区 | 原创专区 | 独奏专区 | 视频教程 | 吉他谱区 | 会员相册
发新话题
打印

SQL数据库相关

SQL数据库相关

修改数据库日志大小的语句:

DBCC SHRINKFILE (数据库名_log, 日志文件大小) 例: 数据库名称:MYDATABASE 压缩日志后文件的大小为:80M DBCC SHRINKFILE (MYDATABASE_log, 80)

TOP

组:

SELECT SUM(hits) AS A, lname FROM mp3 GROUP BY lname ORDER BY SUM(hits) DESC

TOP

EXEC sp_MSforeachtable 'exec sp_changeobjectowner ''?'',''dbo'' '


eg1:

大家知道,如果将一个表所有者改为dbo,只需

sp_changeobjectowner '表名','dbo'即可

但要将所有的表的所有者都改为dbo,可以用循环处理,此处略

其实用SQL的系统存储过程sp_MSForEachTable可以轻松搞定

只需exec sp_MSForEachTable 'sp_changeobjectowner ''?'', ''dbo'''

当然,可能运行时会有错(比如有些表的所有者原先就是dbo),不用理它,运行一遍就行了。



eg2:

所有表都加上一个自增长的字段

大家知道对一个表加的话只需: alter table 表名 add iid int identity(1,1)

若需对所有的表都加的话只需: sp_MSForEachTable 'alter table ? add iid int identity(1,1)'

同理,删除所有表中的iid字段只需 sp_MSForEachTable 'alter table ? drop column iid'


当然,可能运行时会有错(比如加字段时该表中已有该字段,删除字段时没有该字段),不用理它,运行一遍就行了。



eg3:

对所有表中的num字段进行四舍五入处理

sp_MSForEachTable 'update ? set num = round(num,2)'

当然,可能运行时会有错(比如有些表中没有num字段),不用理它,运行一遍就行了。

TOP

发新话题