अधिक वस्तुओं के लिए पहली क्वेरी संशोधित: टेबल, विचार, यूडीएफ, एसपी और इसी तरह। आप अपना ऑब्जेक्ट प्रकार जोड़ सकते हैं।
DECLARE @OldSchema AS VARCHAR(255);
DECLARE @NewSchema AS VARCHAR(255);
SET @OldSchema = 'dbo';
SET @NewSchema = 'new_dbo';
DECLARE @sql AS VARCHAR(MAX);
DECLARE @sqlTmp AS VARCHAR(MAX);
SET @sql = 'CREATE SCHEMA [' + @NewSchema + ']' + CHAR(13) + CHAR(10);
PRINT @sql;
DECLARE @a INT = 1;
WHILE (@a < 1000000)
BEGIN
SET @sqlTmp = '';
SELECT @sqlTmp = 'ALTER SCHEMA [' + @NewSchema + '] TRANSFER ['
+ s_name + '].[' + o_name + ']'
FROM (SELECT s.name s_name ,
o.name o_name ,
ROW_NUMBER() OVER (ORDER BY o.object_id) r
FROM sys.objects o
JOIN sys.schemas s ON o.schema_id = s.schema_id
WHERE s.name = @OldSchema
AND o.type IN ('P', 'U', 'V', 'IF', 'TF', 'FN')
) a
WHERE r = @a;
IF (@@ROWCOUNT = 0)
SET @a = 100000000;
SET @a = @a + 1;
SET @sql = @sql + COALESCE(@sqlTmp, '') + CHAR(13) + CHAR(10);
PRINT @sqlTmp;
END;
SET @sql = @sql + 'DROP SCHEMA [' + @OldSchema + ']';
PRINT 'DROP SCHEMA [' + @OldSchema + ']';
स्रोत
2014-11-05 08:20:06
धन्यवाद। क्या आप इस उत्तर को विस्तारित कर सकते हैं कि उपयोगकर्ता परिभाषित कार्यों के लिए इसे कैसे प्रबंधित किया जाए? – Lijo
@ लिजो: [मेरा प्रश्न देखें "क्यों नहीं है 'sys.functions' कैटलॉग व्यू?"] (Http://stackoverflow.com/questions/468672/sql-server-where-is-sys-functions) - the स्वीकार्य उत्तर आपको दिखाता है कि 'sys.objects' –