Cari teks yang mengandungi kurungan segi empat sama dalam prosedur tersimpan SQL Server
Anda ingin mencari semua prosedur tersimpan dalam pangkalan data yang mengandungi rentetan teks tertentu, termasuk kes di mana rentetan itu disertakan dalam kurungan segi empat sama, tetapi mengalami sedikit kesukaran. Anda menggunakan pertanyaan berikut:
<code class="language-sql">SELECT DISTINCT o.name AS Object_Name, o.type_desc FROM sys.sql_modules m INNER JOIN sys.objects o ON m.object_id = o.object_id WHERE m.definition Like '%[ABD]%';</code>
Walau bagaimanapun, pertanyaan ini mengembalikan hasil yang salah kerana pengendali SQL LIKE mentafsir kurungan segi empat sama sebagai aksara kad bebas dan bukannya aksara literal.
Penyelesaian:
Untuk mencari kurungan segi empat sama literal dalam definisi prosedur tersimpan, anda perlu melepaskannya dalam pertanyaan. Ini boleh dicapai menggunakan klausa ESCAPE:
<code class="language-sql">... WHERE m.definition Like '%\[ABD\]%' ESCAPE '\'</code>
ESCAPE memberitahu SQL Server bahawa aksara berikut tidak seharusnya ditafsirkan sebagai kad bebas tetapi sebagai aksara literal. Dalam contoh ini, aksara sengkang ke belakang () digunakan sebagai aksara melarikan diri.
Dengan menggunakan kurungan segi empat sama, pertanyaan anda kini akan mengenal pasti dan memaparkan prosedur tersimpan dengan tepat yang mengandungi rentetan "[ABD]" dalam definisinya.
Atas ialah kandungan terperinci Bagaimana untuk mencari kurungan segi empat tepat dalam Definisi Prosedur Tersimpan SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!