Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Използване на LIKE в sp_executesql

Следното работи за мен

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]

Мисля, че проблемът трябва да е другаде.

Редактиране: След вашата актуализация трябва да използвате

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

В настоящия момент вие търсите текст, съдържащ действителния подниз @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. Прочетете данни от SqlDataReader

  2. променете базата данни на „онлайн“ и задайте db на „мултипотребител“

  3. Разрешения за SQL Server 2008 Reporting Services

  4. Вмъкване на резултати от съхранена процедура във временна таблица

  5. Как да изброя наличните екземпляри на SQL сървъри, използващи SMO ​​в C#?