Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Ausführen von dynamischem SQL in einer SQLServer 2005-Funktion

Dies ist "normalerweise" nicht möglich, da SQL Server Funktionen als deterministisch behandelt, was bedeutet, dass für einen bestimmten Satz von Eingaben immer dieselben Ausgaben zurückgegeben werden sollten. Eine gespeicherte Prozedur oder dynamisches SQL kann nicht deterministisch sein, da sie den externen Zustand ändern kann, z. B. eine Tabelle, auf die man sich verlässt.

Angesichts der Tatsache, dass Funktionen in SQL Server immer deterministisch sind, wäre es aus Sicht der zukünftigen Wartung eine schlechte Idee, zu versuchen, dies zu umgehen, da dies zu ziemlich großer Verwirrung für jeden führen könnte, der den Code in Zukunft unterstützen muss.