Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Sử dụng LIKE trong sp_executesql

Những điều sau đây phù hợp với tôi

declare @name varchar(50)

set @name = 'WAITFOR'


exec sp_executesql 
  N'select * from sys.messages WHERE text  LIKE ''%'' + @name + ''%''', 
  N'@name varchar(50)',
  @[email protected]

Tôi nghĩ vấn đề phải nằm ở chỗ khác.

Chỉnh sửa: Sau bản cập nhật của bạn, bạn cần sử dụng

exec sp_executesql 
  N'SET @name = ''%'' + @name + ''%'';
    SELECT *
    FROM Tbl_Persons WHERE 1 = 1  AND lastname LIKE @name', 
  N'@name nvarchar(50)',
  @[email protected]

Như nghĩa là bạn đang tìm kiếm văn bản có chứa chuỗi con thực sự @name




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối người dùng Windows khác nhau trong SQL Server Management Studio (2005 trở lên)

  2. Không thể kết nối với SQL Server:Đăng nhập không thành công cho người dùng.

  3. Cách tạo bảng từ kết quả truy vấn chọn trong SQL Server 2008

  4. Thanh tiến trình cho thủ tục được lưu trữ

  5. Cách bắt đầu công việc tác nhân SQL Server tự động