SQL Server ne fait pas de court-circuit (et ne devrait pas le faire).
Si vous en avez besoin pour ne pas essayer quelque chose dans certaines circonstances, vous devez forcer cela dans la façon dont vous écrivez votre requête.
Pour cette requête, la solution la plus simple serait d'utiliser un CASE
expression dans votre WHERE
clause.
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)
Désinvolte, CASE
et l'imbrication de requêtes sont les deux seuls moyens pris en charge auxquels je peux penser pour forcer un ordre d'évaluation pour les conditions dépendantes en SQL.