在SQL Server 2005数据库中更改数据架构
2009-05-19 10:52
806 查看
在SQL Server 2005数据库中更改数据架构
当只更改的表或存储过程少时,可以采用网上的的方法:
在数据库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]
而当要更改一个数据库中全部的表或存储过程时,用上面的方法是可以实现,但是速度太慢了,所以写了一个存储过程批量修改:
改存储过程:
USE [testDemo]
--
--ALTER SCHEMA slqwell TRANSFER
create table #t (
ID int IDENTITY (1,1) not null, --创建列ID,并且每次新增一条记录就会加1
procName varchar(100),
)
insert into #t(procName)
select 'dbo.' +name from sysobjects
where xtype='P' and status>=0
select * from #t
declare @i int
declare @j int
set @j = 1
declare @procName varchar(100)
declare @SchemaTable varchar(200)
while(@j < (@i + 1))
begin
select @procName=procName from #t where ID=@j
set @j = @j + 1
set @SchemaTable = 'ALTER SCHEMA sqlwell TRANSFER ' + @procName
exec (@SchemaTable)
end
drop table #t
其中原来的架构为代表dbo,先的为sqlwell
要修改表的架构时,只要修改上面的xtype='P' 为xtype='U'
当只更改的表或存储过程少时,可以采用网上的的方法:
在数据库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]
而当要更改一个数据库中全部的表或存储过程时,用上面的方法是可以实现,但是速度太慢了,所以写了一个存储过程批量修改:
改存储过程:
USE [testDemo]
--
--ALTER SCHEMA slqwell TRANSFER
create table #t (
ID int IDENTITY (1,1) not null, --创建列ID,并且每次新增一条记录就会加1
procName varchar(100),
)
insert into #t(procName)
select 'dbo.' +name from sysobjects
where xtype='P' and status>=0
select * from #t
declare @i int
declare @j int
set @j = 1
declare @procName varchar(100)
declare @SchemaTable varchar(200)
while(@j < (@i + 1))
begin
select @procName=procName from #t where ID=@j
set @j = @j + 1
set @SchemaTable = 'ALTER SCHEMA sqlwell TRANSFER ' + @procName
exec (@SchemaTable)
end
drop table #t
其中原来的架构为代表dbo,先的为sqlwell
要修改表的架构时,只要修改上面的xtype='P' 为xtype='U'
相关文章推荐
- 在SQL Server 2005数据库中更改数据架构
- 在SQL Server 2005数据库中更改数据架构
- 在sql server 2005数据库中更改数据架构
- [实例]SQL Server 2005 中数据表的架构(schema)更改
- SQLSERVER 免费对比数据库结构和数据的工具支持:SQL Server 2012, SQL Server 2008 and SQL Server 2005
- C# 读取EXCEL中的数据并存入SQL Server 2005数据库
- Visual C# 2008+SQL Server 2005 数据库与网络开发-- 15.5 编辑数据
- SQL server 2005 更改数据库名称
- Visual C# 2008+SQL Server 2005 数据库与网络开发--4.3.3 修改数据
- Visual C# 2008+SQL Server 2005 数据库与网络开发--第8章 使用数据绑定和DataSet
- 从远程Sql Server 2005服务器中导出数据到本地(本地数据库版本:Sql Server 2005)
- SQL Server 2005 导出包含(insert into)数据的SQL脚本 (使用存储过程) 分类: 数据库
- sql server 批量修改数据表和存储过程的所有者(2000)或架构(2005)
- 在SQL Server中将数据库架构及全部数据导成脚本
- SQL server 2005 拒绝了对对象 'extended_properties' (数据库 'mssqlsystemresource',架构 'sys')的 SELECT 权限。 (Micro
- Visual C# 2008+SQL Server 2005 数据库与网络开发-- 8.1 数据绑定
- (转)SQL server 2005查询数据库表的数量和表的数据量
- SQL Server 2005用存储过程从服务器中导出数据到本地自己的数据库
- 探索SQL Server 2005面向服务的数据库架构
- SQL Server 2005更改数据库的登录用户名与访问权限