2017-10-10 64 views
0

這裏是我使用的是現在的代碼:的SQL Server:如果條件字符串包含另一個字符串

if not (CHARINDEX(@newTblPrefix,@fname) > 0) 
    BEGIN 
     exec [DBS].[dbo].[form_drop] @fname 
    END 

我想運行僅@newTblPrefix不包含在@fname的SP。但是這不起作用。有什麼建議麼?不

如果我通過這些值的SP將被執行,而它應該

fname:form.EEN_CMS 
newTblPrefix:WBC 
+0

你可以顯示你正在嘗試做什麼的樣本數據? –

+0

'IF'看起來不錯,問題一定是其他地方。 – MatSnow

+0

如果我在sp調用之前打印變量,我發現它們在原始文章中有值(form.EEN_CMS和WBC) – aggicd

回答

0
IF 
(@fName NOT LIKE '%' + @newTblPrefix + '%') 

exec [DBS].[dbo].[form_drop] @fname 
0

這幾乎是一個雙重否定。當表達式結果爲0時,那麼你試圖說IF NOT (0),我認爲這不正確地翻譯。

UPDATE我的條件是OP所要求的。

試試這個。

Declare @fname varchar(20) = 'form.EEN_CMS' 
, @newTblPrefix varchar(20) = 'WBC' 


if CHARINDEX(@newTblPrefix,@fname) = 0 
    BEGIN 
     Select @fname 
    END 
Else 
    Select 'Found' 
+0

您的解決方案也可以與OP的'IF'語句版本一起使用 - > if NOT(CHARINDEX (@ newTblPrefix,@ fname)> 0)'。那麼這是如何回答這個問題的? – MatSnow

相關問題