Saya memiliki beberapa kode SQL yang perlu dieksekusi jika ada tampilan tertentu dalam database. Bagaimana saya mengecek apakah View itu ada?
EDIT: DBMS yang digunakan adalah Microsoft SQL Server
Saya memiliki beberapa kode SQL yang perlu dieksekusi jika ada tampilan tertentu dalam database. Bagaimana saya mengecek apakah View itu ada?
EDIT: DBMS yang digunakan adalah Microsoft SQL Server
UNTUK SQL SERVER
IF EXISTS(select * FROM sys.views where name = '')
sys.schema
sini juga.Sudah ada banyak cara yang ditentukan di atas tetapi salah satu favorit saya hilang ..
WHERE
nView
adalah nama tampilanUPDATE 2017-03-25: seperti yang disarankan oleh @hanesjw untuk membatalkan penggunaan Prosedur Toko
P
alih-alihV
sebagai argumen keduaOBJECT_ID
sumber
Ini adalah cara yang paling portabel, paling tidak mengganggu:
Sunting: Ini berfungsi pada SQL Server, dan Anda tidak perlu bergabung
sys.schemas
untuk mendapatkan skema tampilan. Ini kurang penting jika semuanyadbo
, tetapi jika Anda memanfaatkan skema dengan baik, maka Anda harus mengingatnya.Setiap RDBMS memiliki sedikit cara sendiri untuk memeriksa metadata seperti ini, tetapi
information_schema
sebenarnya ANSI, dan saya pikir Oracle dan tampaknya SQLite adalah satu-satunya yang tidak mendukungnya dalam beberapa cara.sumber
sumber
Untuk orang-orang yang memeriksa keberadaannya,
View
gunakan iniDari
SQL Server 2016 CTP3
Anda dapat menggunakan pernyataan DIE baru, bukanIF
pembungkus besarsintaksis
Pertanyaan:
Info lebih lanjut di sini
sumber
jika itu Oracle, Anda akan menggunakan tabel "all_views".
Itu benar-benar tergantung pada dbms Anda.
sumber
Jika Anda ingin memeriksa validitas dan konsistensi semua tampilan yang ada, Anda dapat menggunakan kueri berikut
sumber
DI SQL Server,
sumber
Untuk memperluas jawaban Kevin.
sumber
Anda dapat memeriksa ketersediaan tampilan dengan berbagai cara
UNTUK SQL SERVER
gunakan sys.objects
gunakan sysobjects
gunakan sys.views
gunakan INFORMATION_SCHEMA.VIEWS
gunakan OBJECT_ID
gunakan sys.sql_modules
sumber