在動態 SQL中使用PATINDEX函數的語法與靜態SQL中基本相同,只是需要注意在動態SQL字符串中正確引用和轉義引號。以下是一個示例:
DECLARE @searchTerm NVARCHAR(100) = 'keyword';
DECLARE @sql NVARCHAR(MAX);
SET @sql = 'SELECT * FROM TableName WHERE PATINDEX(''%'' + @searchTerm + ''%'', columnName) > 0';
EXEC sp_executesql @sql, N'@searchTerm NVARCHAR(100)', @searchTerm;
在上面的示例中,@searchTerm是要搜索的關鍵字,@sql是動態SQL語句,我們在其中使用PATINDEX函數來在columnName列中查找包含@searchTerm的行。最后,我們使用sp_executesql來執行動態SQL。
需要注意的是,在動態SQL中,需要使用兩個百分號來引用參數值,因為單個百分號會被視為通配符。因此,在PATINDEX函數中,我們將搜索字符串包裝在兩個百分號之間。