Ich habe eine Tabelle, die SQL-Abfragen speichert. Ich lese das und führe es unter Verwendung EXECUTE sp_executesql
aus. Ich frage mich, ob, wenn ich diese Abfrage ändern möchte, wie kann ich das tun?So ändern Sie dynamische Abfrage in SQL Server?
Wenn ich eine Variable am Ende hinzufügen, kann ich so etwas tun:
DECLARE @sql1 NVARCHAR(MAX), @var NVARCHAR(20)
SET @sql1 = (SELECT Query FROM Table WHERE ID = 123)
SET @var = ' AND CONDITION2'
PRINT @sql1 + @var
Ergebnis:
UPDATE Table SET VALUE1 WHERE CONDITION1 AND CONDITION2
Aber wenn ich etwas dazwischen hinzufügen wollen, ich Ich bin mir nicht sicher, wie ich das machen soll.
Abfrage:
DECLARE @sql NVARCHAR(MAX)
SET @sql = (SELECT Query FROM Table WHERE ID = 123)
PRINT @sql
Tatsächliches Ergebnis:
UPDATE Table SET VALUE1 WHERE CONDITION1
Erwartet:
UPDATE TOP (100) Table SET VALUE1 WHERE CONDITION1
Ohne ein tatsächlichen Details sonst niemand wollen wissen, wie dies entweder zu tun. Vor allem, weil wir keine Ahnung haben, was Sie zu tun versuchen. Sie sollten mit Tabellendefinitionen und Beispieldaten beginnen. Dann schließe ein, was du zu tun versuchst. –