SQL Server non esegue il cortocircuito (né dovrebbe).
Se ne hai bisogno, non provare qualcosa in alcune circostanze, devi forzarlo nel modo in cui scrivi la tua query.
Per questa query la soluzione più semplice sarebbe utilizzare un CASE
espressione nel tuo WHERE
clausola.
declare @queryWord as nvarchar(20) = 'asdas'
SELECT * FROM TABLE_1
WHERE TABLE_1.INIT_DATE = (CASE WHEN ISDATE(@queryWord) = 1
THEN CONVERT(Date, @queryWord)
ELSE NULL END)
Seconda mano, CASE
e l'annidamento delle query sono gli unici due modi supportati che mi vengono in mente per forzare un ordine di valutazione per le condizioni dipendenti in SQL.