Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Tidak dapat menghapus skema , karena tidak ada atau Anda tidak memiliki izin. - Tutorial SQL Server / TSQL Bagian 29

Skenario:

Anda bekerja untuk Perusahaan Hipotek sebagai pengembang SQL Server. Anda mendapatkan persyaratan ini untuk menyiapkan skrip SQL untuk menjatuhkan skema. Anda menggunakan
Lepaskan Nama Skema Skema
pernyataan dalam pengembangan SQL Server Instance dan mendapatkan kesalahan di bawah ini.

Tidak dapat menghapus skema '', karena tidak ada atau Anda tidak memiliki izin.

Apa langkah Anda selanjutnya?

Solusi:

Mungkin ada beberapa alasan untuk kesalahan di atas. Satu, Anda benar-benar tidak memiliki izin untuk membatalkan Skema. Anda memeriksa dengan DBA dan dia mengonfirmasi bahwa Anda memiliki semua izin untuk melakukan perubahan ini. Sekarang Anda melihat lebih jauh ke dalamnya dan memperhatikan bahwa ada objek seperti tabel, tampilan, dll. yang menggunakan skema ini.
Dari sini Anda dapat mengajukan dua solusi.
1) Jatuhkan semua Objek Terkait dengan Skema lalu Lepaskan Skema (Mungkin ada skenario di mana seseorang menggunakan skema dan objek ini. Sekarang tidak ada lagi yang perlu menggunakan skema dan objek yang terkait dengannya. Jadi, Anda akan berdiskusi dengan tim Anda dan jika mereka mengatakan itu, siapkan skrip drop untuk objek dan skema. Anda bisa menggunakan jendela Object Explorer Detail untuk menghasilkan Drop Objects Scripts.
2) Anda ingin menyimpan objek dan memindahkannya ke skema yang berbeda. Mungkin dbo atau skema baru. Setelah mentransfer objek, Anda ingin menghapus skema.
Kueri di bawah ini dapat digunakan untuk menghasilkan skrip untuk Mentransfer objek.
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
 
 
 Salin skrip yang dihasilkan dan kemudian jalankan di database. Setelah selesai, Sekarang Anda dapat menghapus Skema dengan menggunakan Lepaskan Nama Skema Skema Penyataan. 

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Penyortiran alami (alfanumerik manusia) di Microsoft SQL 2005

  2. Gunakan SET TEXTSIZE untuk Membatasi Data yang Dikembalikan untuk Setiap Baris di SQL Server

  3. Jalankan prosedur tersimpan menggunakan kerangka entitas

  4. Pemeriksaan Kesehatan SQL Server Proaktif, Bagian 3:Pengaturan Instans dan Basis Data

  5. Cara membaca baris terakhir dengan SQL Server