banner
ximalaya

ximalaya

这里是openkava 的blog,关注程序开发的一切技术。 ZZ 表示转载的文章,如涉及版权,请和我联系删除。 在这里你可以看到关于以下技术的文章: 移动开发技术,ANDROID ,IOS,WINDOWS PHONE平台开发,企业ERP开发,动态脚本PYTHON ,OPENGL ES 3D技术,游戏开发技术,HTML5 ,JAVASCRIPT ,MYSQL,AMAZON EC2 ,GOOGLE GAE ,GOOGLE CLOUD SQL 等 。 本站发展历程: 2010年,正式把所有的blog移到这里,租用godaddy的空间,记录生活和工作上的一些心得。 下面是关于我的个人介绍,写在这里权当凑字数啦。 职业:软件开发,开发经验6年,管理经验3年; 工作上使用的技术:C#, SQL SERVER 个人使用的技术:PYTHON,PHP, CSS, JAVA ,ANDROID ,object-c 等等 联系我请发邮件:<a href="http://blog.openkava.com/openkava@gmail.png"><img class="alignnone size-full wp-image-96" title="邮箱" src="http://blog.openkava.com/openkava@gmail.png" alt="" width="174" height="24" /></a>

zz MS SQL2000データベースの所有者を変更する

http://www.cnblogs.com/wantingqiang/archive/2008/12/14/1354738.html

いくつかの場合、データベースの管理者は、いくつかの異なるデータベース内のデータを統合する必要があります。いくつかのデータベースの構造が基本的に同じである場合、新しいデータベースを作成し、他のいくつかのデータベース内のオブジェクトをコピーして新しいデータベースに追加し、微調整を行うだけで目的を達成できます。ただし、異なるデータベースには異なるユーザーアカウント、データベースオブジェクト(例:テーブル、ストアドプロシージャ、ビューなど)の所有者が存在する可能性があります。そのため、データをインポートする際に、システムは同じ名前ですが所有者が異なるデータベースオブジェクトを別のオブジェクトとして認識し、ターゲットライブラリに新しいオブジェクトを作成し、対応するユーザーアカウントが存在しないため、ユーザーが存在しないというエラーが発生します。したがって、データベースオブジェクトの所有者を統一する必要があります。

いつもの習慣ですが、以下にテーブル、ストアドプロシージャ、およびビューの所有者を変更するための SQL スクリプトを示します。説明する必要があるのは、このスクリプトは同様に、データベースオブジェクトの所有者を DBO ユーザーから他の指定されたユーザーに変更するためにも使用できるということです。使用方法は、YourUserName を DBO に変更し、元の DBO の位置に指定したいユーザーアカウント名を入力し、実行するだけです。もちろん、このスクリプトコードは非常に柔軟であり、DBO と他の指定されたアカウント間の変更にだけ対応しているわけではありません。実際に試してみれば自然に理解できます。

  1. テーブルの所有者を変更する

declare @tn varchar(120)

declare table_cursor cursor for
Select '[' + sysusers.name + '].' + sysobjects.name AS table_name
FROM sysobjects INNER JOIN sysusers ON sysobjects.uid = sysusers.uid
Where sysusers.name = 'YourUserName' AND sysobjects.type = 'U'

open table_cursor
fetch next from table_cursor into @tn

while @@FETCH_STATUS = 0
begin
exec sp_changeobjectowner @tn, 'dbo'

fetch next from table_cursor into @tn
end

close table_cursor
deallocate table_cursor

  1. ストアドプロシージャの所有者を変更する

declare @tn varchar(120)

declare procedure_cursor cursor for
Select '[' + sysusers.name + '].' + sysobjects.name AS procedure_name
FROM sysobjects INNER JOIN sysusers ON sysobjects.uid = sysusers.uid
Where sysusers.name = 'YourUserName' AND sysobjects.type = 'P'

open procedure_cursor
fetch next from procedure_cursor into @tn

while @@FETCH_STATUS = 0
begin
exec sp_changeobjectowner @tn, 'dbo'

fetch next from procedure_cursor into @tn
end

close procedure_cursor
deallocate procedure_cursor

  1. ビューの所有者を変更する

declare @tn varchar(120)

declare view_cursor cursor for
Select '[' + sysusers.name + '].' + sysobjects.name AS view_name
FROM sysobjects INNER JOIN sysusers ON sysobjects.uid = sysusers.uid
Where sysusers.name = 'YourUserName' AND sysobjects.type = 'V'

open view_cursor
fetch next from view_cursor into @tn

while @@FETCH_STATUS = 0
begin
exec sp_changeobjectowner @tn, 'dbo'

fetch next from view_cursor into @tn
end

close view_cursor
deallocate view_cursor

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。