zoukankan      html  css  js  c++  java
  • 在SQL Server 2005数据库中更改数据架构

    在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

    set @i = 20
    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' 

  • 相关阅读:
    Html5 冒泡排序演示
    Html5 Json应用
    Html5 和 CSS的简单应用
    Html5 布局方式
    Html5 绘制五星红旗
    Html5 绘制旋转的太极图
    Html5绘制时钟
    Html5 实现灯笼绘制
    "电量信息"组件:<battery> —— 快应用组件库H-UI
    "系统音量"组件:<volume> —— 快应用组件库H-UI
  • 原文地址:https://www.cnblogs.com/dsliang/p/1778632.html
Copyright © 2011-2022 走看看