ورود

View Full Version : تعویض Database Object Owner به صورت اتوماتیک Batch



Navid7h
پنج شنبه 30 شهریور 1385, 11:46 صبح
با سلام خدمت دوستان
من احتیاج دارم که owner اشیای Database خودم رو عوض کنم اما چون تعداد Object ها زیاد است کد زیر رو نوشتم اما یک Error میده برای تمام Object های موجود در DB

ابتدا کد:


DECLARE @objectName AS sysname
DECLARE myCursor CURSOR FOR
SELECT [Name] FROM sysobjects
WHERE [UID] <> 1
OPEN myCursor
FETCH NEXT FROM myCursor INTO @objectName
WHILE @@FETCH_STATUS = 0
BEGIN
EXECUTE sp_ChangeObjectOwner @objectName, dbo
FETCH NEXT FROM myCursor INTO @objectName
END
CLOSE myCursor
DEALLOCATE myCursor

حالا این Error


Object '... 'does not exist or is not a valid object for this operation.

ممنون میشم اگه کسی بتونه راهنماییم کنه
با تشکر
نوید

majid_afra222
پنج شنبه 30 شهریور 1385, 12:44 عصر
سلام
نام صاحب فعلی Object رو هم به ابتدای اون اضافه کن.


DECLARE @objectName AS sysname
DECLARE myCursor CURSOR FOR
SELECT "preOwner." + [Name] FROM sysobjects
WHERE [UID] <> 1
OPEN myCursor
FETCH NEXT FROM myCursor INTO @objectName
WHILE @@FETCH_STATUS = 0
BEGIN
EXECUTE sp_ChangeObjectOwner @objectName, dbo
FETCH NEXT FROM myCursor INTO @objectName
END
CLOSE myCursor
DEALLOCATE myCursor