查询sqlserver所有表并改变其架构
查询所有的数据库 select [name] from [sysdatabases] order by [name] 查询一个数据库中的所有表 select [id], [name] from [sysobjects] where [type] = 'u'
都知道[type] = ‘u’ 是用户表,[type] = ‘s’是表吧。
根据上个语句的查询结果然后再
查询一个表中的所有字段(我尝试不用[id],而用[name]去查,结果报错了)
select [name] from [syscolumns] where [id] = 1931153925
以上是查询所有表:
以下是改变所有表架构:
在数据库testdb中存在架构a及用户a,现将testdb数据库所属的用户由a改为b,同时删除用户a;架构也由a改为b,删除架构a,操作如下:
1、创建用户b,再创建架构b;
2、将架构a的权限赋给用户b,取消用户a拥有架构a的权限,删除用户a;
3、将数据库的所有属于架构a的对象改为架构b,代码如下:
alter schema [新架构名] transfer 旧架构名.[数据库中的对象表或视图或存储过程] alter schema [b] transfer a.[对象1] alter schema [b] transfer a.[对象2] alter schema [b] transfer a.[对象n]
4、删除架构a。
如:
alter schema dbo transfer danxiao1.ds_city1