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

Referensi Prosedur tersimpan untuk semua database di server

Pertanyaan ini telah ditanyakan beberapa kali di SO, tetapi yang menarik tampaknya tidak ada konsensus tentang jawaban terbaik. Jadi, inilah ringkasan opsi utama yang disarankan berbagai orang (tanpa urutan khusus):

  1. Masukkan ke database master dengan sp_ awalan sehingga SQL Server mencarinya di sana terlebih dahulu
  2. Masukkan ke database model, sehingga otomatis ditambahkan ke semua DB baru
  3. Buat database hanya untuk prosedur 'global' (dan objek lainnya) dan panggil mereka menggunakan penamaan tiga bagian
  4. Sebagai 3, tetapi buat sinonim di database lain sehingga Anda tidak memerlukan penamaan tiga bagian
  5. Gunakan alat komersial atau yang dikembangkan sendiri untuk mengelola penerapan ke banyak basis data
  6. Sebagai 5, tetapi terapkan ke satu database, lalu diff database dan terapkan skrip diff untuk diterapkan ke database lain

Menurut pendapat saya, 1 adalah non-starter karena Microsoft secara eksplisit mengatakan Anda tidak boleh membuat objek di database master. 2 terdengar bagus, tetapi dalam praktiknya, database dipulihkan atau disalin lebih sering daripada dibuat dari awal (YMMV), jadi menggunakan model tidak dapat diandalkan.

3 dan 4 bagus untuk tabel dan tampilan, tetapi konteks eksekusi dapat menjadi masalah untuk prosedur dan fungsi tersimpan. Tapi ini tergantung pada logika dalam prosedur dan mungkin bisa diterapkan dalam kasus Anda.

Tetapi 1-4 semua memiliki potensi masalah bahwa jika Anda hanya memiliki satu objek, Anda hanya memiliki satu versi objek itu, dan seringkali berguna untuk memiliki versi berbeda yang tersedia di DB yang berbeda, untuk pengujian atau hanya untuk pelanggan yang berbeda.

5 dan 6 adalah variasi pada tema yang sama dan saya pribadi menemukan ini adalah pendekatan terbaik karena penyebaran adalah masalah yang harus Anda selesaikan, jadi Anda sebaiknya melakukannya dan memastikan bahwa Anda memiliki pengetahuan, alat, dan proses di tempat untuk dapat menerapkan kode dengan rapi dan cepat ke database mana pun dengan cara yang terkontrol dan otomatis.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara MENGUBAH beberapa kolom sekaligus di SQL Server

  2. Pemanfaatan CPU oleh database?

  3. Mendefinisikan hubungan satu-ke-satu di SQL Server

  4. 9 Tips Terbaik untuk Menyiapkan Cluster SQL Server Anda

  5. Memulihkan Database Master SQL Server