Apakah mungkin menggunakan wildcard dalam parameter SQL Server Stored Proc?

Saya bekerja dengan Stored Proc dengan mengambil beberapa parameter. Namun ternyata untuk salah satu parameter, saya perlu mengulang daftar item dan memanggil SP beberapa kali. Namun saat saya meneruskan SP setiap nilai yang mungkin dari tipe tersebut, akan terlihat lebih efisien (dan lebih sederhana) jika mengabaikan parameter dengan mengatakan "dapatkan semuanya" melalui wildcard.

Apakah mungkin melakukan itu, seperti dengan "*" atau "%" atau semacamnya?

Secara teoritis (berdasarkan penelitian yang saya lakukan), "%" seharusnya berfungsi, tetapi dalam kasus saya ini tidak mengembalikan catatan apa pun. Apakah saya melakukan sesuatu yang salah, dengan kode ini:

. . .
new SqlParameter()
{
    ParameterName = "@Member",
    SqlDbType = SqlDbType.VarChar,
    Value = '%'
},
. . .

?


person B. Clay Shannon    schedule 30.12.2015    source sumber
comment
Cukup berikan NULL dengan parameter dan gunakan WHERE col = ISNULL(@param, col) atau untuk kinerja lebih lanjut WHERE col = @param or @param IS NULL   -  person Lukasz Szozda    schedule 30.12.2015
comment
Sepertinya sesuatu yang perlu saya tambahkan ke SP, padahal saya tidak bisa - itu bukan domain saya (tidak ada permainan kata-kata yang dimaksudkan).   -  person B. Clay Shannon    schedule 30.12.2015
comment
Lalu mengapa sebenarnya MENGGUNAKAN parameter, mengapa tidak mengubah proc yang disimpan saja untuk menggunakan wild card? - ah saya melihat komentar Anda yang lain, Anda dilarang melakukan itu...   -  person Mark Schultheiss    schedule 30.12.2015
comment
@MarkSchultheiss: Lihat komentar saya sebagai tanggapan terhadap lad2025. Saya perlu cara untuk menanganinya dari kode C# saya.   -  person B. Clay Shannon    schedule 30.12.2015
comment
Ya, % adalah wildcard ketika digunakan dengan LIKE operator. Namun jika hal tersebut tidak terjadi, maka hal tersebut tidak akan berhasil.   -  person Damien_The_Unbeliever    schedule 30.12.2015
comment
Ya, saya baru saja akan berkomentar bahwa prosedur tersimpan kemudian harus menggunakan sesuatu yang mirip dengan ...LIKE @Member.... Lihat jawabannya di sini sebagai contoh: stackoverflow.com/questions/10601318/   -  person Mark Schultheiss    schedule 30.12.2015


Jawaban (1)


Tidak. Tanpa dapat mengubah kode prosedur tersimpan, tidak ada apa pun yang dapat Anda lewati sebagai parameter yang akan bertindak seperti wild card.

person Tab Alleman    schedule 30.12.2015