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

prosedur tersimpan dengan parameter wildcard

Apakah Anda mencoba menjalankannya lagi? Saya menduga panggilan exec adalah bagian dari tubuh prosedur Anda sekarang. Bagaimana dengan:

ALTER PROCEDURE dbo.wildcard_name
  @userName NVARCHAR(8) = '%'
AS
BEGIN
  SET NOCOUNT ON;

  SELECT userId, userName
    FROM dbo.user
    WHERE userName LIKE @userName;
END
GO -- <-- this is important! It tells SSMS that your procedure has ended!

EXEC dbo.wildcard_name N'n%';

Banyak saran lain yang tidak akan saya sebutkan:

  • Anda harus selalu menentukan awalan skema saat membuat dan memanggil objek. Jadi CREATE PROCEDURE dbo.wildcard_name , EXEC dbo.wildcard_name , dll.
  • Semoga kode produksi Anda tidak menggunakan SELECT * .
  • Sangat disarankan menggunakan nvarchar daripada nchar untuk parameter Anda.
  • Bungkus badan prosedur Anda dengan BEGIN / END dan jangan takut untuk menggunakan indentasi agar lebih mudah dibaca.
  • Biasanya Anda ingin menggunakan SET NOCOUNT ON; untuk mencegah n row(s) affected pesan agar tidak mengganggu hasil Anda.
  • NVARCHAR parameter harus memiliki awalan N (meskipun saya bingung mengapa Anda berganti-ganti antara varchar dan nchar pertama-tama - ini adalah dua shift yang saya harapkan nol).
  • Tergantung pada susunannya (dan apakah Anda ingin penelusuran peka huruf besar/kecil), Anda mungkin perlu mengubah klausa where menggunakan COLLATE klausa.

EDIT ini tampaknya berfungsi dengan baik untuk saya, jadi tolong jelaskan apa yang Anda lakukan secara berbeda (dan apakah "tidak berhasil" masih berarti hasil kosong, atau yang lainnya?):




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2017 Langkah demi Langkah Instalasi -1

  2. Salin data ke tabel lain

  3. Bagaimana saya bisa memindahkan database SQL Server LocalDb dari satu mesin ke mesin lainnya?

  4. 4 Cara Mengonversi Angka ke Persentase di SQL Server (T-SQL)

  5. PIVOT Query beberapa bergabung