dbTalk Databases Forums  

ALTER SCHEMA with a variable

microsoft.public.sqlserver.dts microsoft.public.sqlserver.dts


Discuss ALTER SCHEMA with a variable in the microsoft.public.sqlserver.dts forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Gary
 
Posts: n/a

Default ALTER SCHEMA with a variable - 05-09-2006 , 06:53 PM






Hi
Think there's simple solution to this.
How do you get ALTER SCHEMA dbo TRANSFER @currentTable to use the
variable.

I'm doing an updated version of an SP to change the object Owner/Schema
and I don't want to use the now outdated sp_changeobjectowner

Cheers
Gary


----Old SP---
Create PROCEDURE [dbo].[ts_Maint_ChangeObjectOwners]

(
@currentOwner nVarchar(256),
@newOwner nVarchar(256)
)

AS
DECLARE @currentObject nvarchar(517)
DECLARE @qualifiedObject nvarchar(517)

DECLARE alterOwnerCursor CURSOR FOR

SELECT [name] FROM dbo.sysobjects
WHERE (xtype = 'U' or xtype = 'P' or xtype = 'FN' )
AND (LEFT([name], 2) <> 'dt' and Uid=user_id(@currentOwner))

OPEN alterOwnerCursor

FETCH NEXT FROM alterOwnerCursor INTO @currentObject

WHILE @@FETCH_STATUS = 0

BEGIN
SET @qualifiedObject = CAST(@currentOwner as varchar) + '.' +
CAST(@currentObject as varchar)
print 'Changing ' + @currentObject +' from '+ @currentOwner + ' to '
+ @newOwner
EXEC sp_changeobjectowner @qualifiedObject, @newOwner
FETCH NEXT FROM alterOwnerCursor INTO @currentObject
END

CLOSE alterOwnerCursor

DEALLOCATE alterOwnerCursor

RETURN


Reply With Quote
  #2  
Old   
Sue Hoegemeier
 
Posts: n/a

Default Re: ALTER SCHEMA with a variable - 05-11-2006 , 09:09 PM






Pass the entire alter schema dbo...etc statement into an
exec().
EXEC('ALTER SCHEMA ' + @NewOwner + ' TRANSFER ' +
@QualifiedObject + ';')

-Sue

On 9 May 2006 16:53:34 -0700, "Gary" <gary (AT) internetalia (DOT) com>
wrote:

Quote:
Hi
Think there's simple solution to this.
How do you get ALTER SCHEMA dbo TRANSFER @currentTable to use the
variable.

I'm doing an updated version of an SP to change the object Owner/Schema
and I don't want to use the now outdated sp_changeobjectowner

Cheers
Gary


----Old SP---
Create PROCEDURE [dbo].[ts_Maint_ChangeObjectOwners]

(
@currentOwner nVarchar(256),
@newOwner nVarchar(256)
)

AS
DECLARE @currentObject nvarchar(517)
DECLARE @qualifiedObject nvarchar(517)

DECLARE alterOwnerCursor CURSOR FOR

SELECT [name] FROM dbo.sysobjects
WHERE (xtype = 'U' or xtype = 'P' or xtype = 'FN' )
AND (LEFT([name], 2) <> 'dt' and Uid=user_id(@currentOwner))

OPEN alterOwnerCursor

FETCH NEXT FROM alterOwnerCursor INTO @currentObject

WHILE @@FETCH_STATUS = 0

BEGIN
SET @qualifiedObject = CAST(@currentOwner as varchar) + '.' +
CAST(@currentObject as varchar)
print 'Changing ' + @currentObject +' from '+ @currentOwner + ' to '
+ @newOwner
EXEC sp_changeobjectowner @qualifiedObject, @newOwner
FETCH NEXT FROM alterOwnerCursor INTO @currentObject
END

CLOSE alterOwnerCursor

DEALLOCATE alterOwnerCursor

RETURN


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.