Tình huống:
Bạn đang làm việc cho Mortgage Company với tư cách là nhà phát triển SQL Server. Bạn có yêu cầu này để chuẩn bị tập lệnh SQL để thả giản đồ. Bạn sử dụngDrop Schema SchemeName Câu lệnh
trong phiên bản SQL Server đang phát triển và gặp lỗi dưới đây.
Không thể bỏ qua giản đồ '', vì nó không tồn tại hoặc bạn không có quyền.
Các bước tiếp theo của bạn là gì?
Giải pháp:
Có thể có một số lý do cho lỗi trên. Thứ nhất, bạn thực sự không có quyền bỏ Lược đồ. Bạn đã kiểm tra với DBA và anh ấy xác nhận rằng bạn có tất cả các quyền để thực hiện thay đổi này. Bây giờ bạn đã xem xét kỹ hơn và nhận thấy rằng có các đối tượng như bảng, dạng xem, v.v. đang sử dụng lược đồ này.Từ đây, bạn có thể đề xuất hai giải pháp.
1) Bỏ tất cả các Đối tượng Liên quan đến Lược đồ và sau đó Thả Lược đồ (Có thể có tình huống ai đó đang sử dụng lược đồ và các đối tượng này. Bây giờ không ai cần sử dụng lược đồ và các đối tượng liên quan đến nó nữa. Vì vậy, bạn sẽ thảo luận với nhóm của mình và nếu họ nói rằng hãy chuẩn bị tập lệnh thả cho các đối tượng và lược đồ. Bạn có thể sử dụng cửa sổ Object Explorer Detail để tạo Drop Objects Scripts.
2) Bạn muốn giữ các đối tượng và di chuyển chúng sang các lược đồ khác nhau. Có thể là dbo hoặc bất kỳ lược đồ mới nào. Sau khi chuyển các đối tượng, bạn muốn xóa giản đồ.
Dưới đây Truy vấn có thể được sử dụng để tạo tập lệnh cho các đối tượng Truyền.
Declare @SourceSchema VARCHAR(100) Declare @DestinationSchema VARCHAR(100) SET @SourceSchema='TB' SET @DestinationSchema='dbo' Select 'Alter Schema ['+@DestinationSchema+'] Transfer '+@SourceSchema+'.['+name+']'
from sys.objects where schema_name(schema_id)=@SourceSchema
Sao chép các tập lệnh đã tạo và sau đó chạy trong cơ sở dữ liệu. Sau khi hoàn tất, Bây giờ bạn có thể thả giản đồ bằng cách sử dụng Drop Schema SchemaName Tuyên bố.