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

Menyegarkan metadata pada fungsi pengguna t-SQL

jawaban gbn yang terbaik - tetapi ketika Anda memiliki SCHEMABINDING, ini sering mencegah Anda membuat perubahan mendasar tanpa terlebih dahulu menghapus SCHEMABINDING dan kemudian menggantinya saat membuat ulang modul. Anda tidak dapat menggunakan SCHEMABINDING jika objek Anda mereferensikan objek di luar database.

Jika kesulitan ini sangat besar sehingga Anda tidak ingin atau tidak dapat menggunakan SCHEMABINDING, gunakan sp_refreshsqlmodule dalam beberapa jenis proses reguler yang Anda jalankan untuk memeriksa kesalahan modul SQL sebelum benar-benar digunakan (dapat dijalankan pada tampilan non-skema, UDF, proc tersimpan, dll.) adalah teman Anda.

Anda dapat menggunakan kedua teknik secara bersamaan - Anda tidak dapat (dan tidak perlu) menjalankan sp_refreshsqlmodule terhadap objek yang terikat skema.

misalnya, Anda hanya dapat menjalankannya di modul berikut:

SELECT *
FROM    INFORMATION_SCHEMA.ROUTINES
        WHERE   (
                 OBJECTPROPERTY(OBJECT_ID(QUOTENAME(ROUTINE_SCHEMA) + '.' + QUOTENAME(ROUTINE_NAME)), N'IsSchemaBound') IS NULL
                 OR OBJECTPROPERTY(OBJECT_ID(QUOTENAME(ROUTINE_SCHEMA) + '.' + QUOTENAME(ROUTINE_NAME)),
                                   N'IsSchemaBound') = 0
                )


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Output presisi penuh dari tipe floating point di SQL Server Management Studio

  2. Format waktu sebagai Waktu Militer 24 jam?

  3. CEILING() Contoh di SQL Server

  4. Permintaan SQL Server untuk menemukan semua izin/akses untuk semua pengguna dalam database

  5. bagaimana cara mendeklarasikan variabel global di SQL Server ..?