Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Używanie LIKE w sp_executesql

Następujące działa dla mnie

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]

Myślę, że problem musi leżeć gdzie indziej.

Edytuj: Po aktualizacji musisz użyć

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

W obecnej postaci szukasz tekstu zawierającego rzeczywisty podciąg @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. Jak programowo wykonać kopię zapasową bazy danych SQL w C#

  2. Zmiana tabeli i dodanie UNIKALNEGO klucza powoduje błąd

  3. Zapytanie SQL upływa limitu czasu, gdy jest uruchamiane z C#, szybko w SQL Server Management Studio

  4. Dostęp tylko do odczytu do zawartości procedury składowanej

  5. Narzędzie do skryptowania danych tabeli