Có, có thể.
Để thay đổi lược đồ của một đối tượng cơ sở dữ liệu, bạn cần chạy tập lệnh SQL sau:
ALTER SCHEMA NewSchemaName CHUYỂN NHƯỢNG CũSchemaName.ObjectName
Trong đó ObjectName có thể là tên của một bảng, một dạng xem hoặc một thủ tục được lưu trữ. Vấn đề dường như là nhận được danh sách tất cả các đối tượng cơ sở dữ liệu với một tên shcema đã cho. Rất may, có một bảng hệ thống tên là sys.Objects lưu trữ tất cả các đối tượng cơ sở dữ liệu. Truy vấn sau sẽ tạo tất cả các tập lệnh SQL cần thiết để hoàn thành tác vụ này:
SELECT 'ALTER SCHEMA NewSchemaName TRANSFER [' + SysSchemas.Name + ']. [' + DbObjects.Name + '];' FROM sys.Objects DbObjectsINNER JOIN sys.Schemas SysSchemas ON DbObjects.schema_masid =SysSchema_masid. schema_idWHERE SysSchemas.Name ='OldSchemaName'AND (DbObjects.Type IN (' U ',' P ',' V '))
Trong đó loại "U" biểu thị bảng người dùng, "V" biểu thị các chế độ xem và "P" biểu thị các thủ tục được lưu trữ.
Chạy đoạn mã trên sẽ tạo ra các lệnh SQL cần thiết để chuyển các đối tượng từ một lược đồ này sang một lược đồ khác. Một cái gì đó như thế này:
Giờ đây, bạn có thể chạy tất cả các truy vấn đã tạo này để hoàn tất thao tác chuyển.