MSSQL 存储过程

1.更换数据库用户名

 

代码
CREATE PROCEDURE dbo.changename
@OldOwner as NVARCHAR(128),--参数原所有者
@NewOwner as NVARCHAR(128)--参数新所有者
AS
DECLARE @Name as NVARCHAR(128)
DECLARE @Owner as NVARCHAR(128)
DECLARE @OwnerName as NVARCHAR(128)
DECLARE curObject CURSOR FOR
select 'Name' = name,
'Owner' = user_name(uid)
from sysobjects
where user_name(uid)=@OldOwner
order by name
OPEN curObject
FETCH NEXT FROM curObject INTO @Name@Owner
WHILE(@@FETCH_STATUS=0)
BEGIN
if @Owner=@OldOwner
begin
set @OwnerName = @OldOwner + '.' + rtrim(@Name)
exec sp_changeobjectowner @OwnerName@NewOwner
end
FETCH NEXT FROM curObject INTO @Name@Owner
END
close curObject
deallocate curObject
GO

exec changename 'cdpu2010','dbo' 

 2.删除表和表之前的关系

 

代码
DECLARE c1 cursor for
    
select 'alter table ['+ object_name(parent_obj) + '] drop constraint [cdpu2010]; '
    
from sysobjects
    
where xtype = 'F'
open c1
declare @c1 varchar(8000)
fetch next from c1 into @c1
while(@@fetch_status=0)
    
begin
        
exec(@c1)
        
fetch next from c1 into @c1
    
end
close c1
deallocate c1

 

 

3.删除表

 

代码
use cdpu2010
GO
declare @sql varchar(8000)
while (select count(*from sysobjects where type='U')>0
begin
SELECT @sql='drop table ' + name
FROM sysobjects
WHERE (type = 'U')
ORDER BY 'drop table ' + name
exec(@sql)
end

 

 

 

 

posted @ 2010-09-15 11:37  DODUI  阅读(503)  评论(0编辑  收藏  举报