数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
对所有表进行类似处理

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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字段),不用理它,运行一遍就行了。




相关文章

相关软件