Wir haben einen SQL-Generator, der generische SQL-Bedingungsanweisungen für bestimmte Felder ausgibt (was zur Diskussion: Wir werden als kennzeichnen myField).
Wenn myFieldes sich um einen Typ handelt NVARCHAR, können wir dieses Feld mit einer Zeichenfolge wie folgt vergleichen : myField = 'foo'.
Dies funktioniert jedoch nicht für Felder vom Typ NTEXT. Wir müssen also den Vergleich mit einer Besetzung anstellen : CAST(myField as NVARCHAR(MAX)) = 'foo'. Dies funktioniert in der Tat, wenn myFieldes sich um einen Typ handelt NVARCHARoder NTEXT.
Was ist der Leistungshit, wenn die oben genannte Besetzung auf einem Feld ausgeführt wird, das bereits vom Typ ist NVARCHAR? Ich hoffe, dass SQL Server intelligent genug ist, um dynamisch zu erkennen, dass myFieldes sich bereits um einen Typ handelt NVARCHAR(der effektiv CASTzu einem No-Op wird).