Heim >Datenbank >MySQL-Tutorial >Wie kann Dynamic SQL SELECT * EXCEPT in SQL Server zum Debuggen simulieren?
*Dynamisches SQL: Eine Problemumgehung für SELECT AUSSER beim SQL Server-Debuggen**
Während SELECT *
im Produktionscode im Allgemeinen nicht empfohlen wird, kann es beim Debuggen hilfreich sein. Allerdings bietet SQL Server keine direkte „SELECT * EXCEPT“-Klausel an. Diese Einschränkung kann mit dynamischem SQL überwunden werden.
Angenommen, wir möchten alle Spalten aus der MY_Table
Tabelle abrufen, mit Ausnahme der Spalte „Beschreibung“. So geht's mit dynamischem SQL:
<code class="language-sql">DECLARE @sql VARCHAR(8000), @table_id INT, @col_id INT; SET @sql = 'SELECT '; SELECT @table_id = id FROM sysobjects WHERE name = 'MY_Table'; SELECT @col_id = MIN(colid) FROM syscolumns WHERE id = @table_id AND name <> 'description'; WHILE (@col_id IS NOT NULL) BEGIN SELECT @sql = @sql + name FROM syscolumns WHERE id = @table_id AND colid = @col_id; SELECT @col_id = MIN(colid) FROM syscolumns WHERE id = @table_id AND colid > @col_id AND name <> 'description'; IF (@col_id IS NOT NULL) SET @sql = @sql + ','; PRINT @sql; END; SET @sql = @sql + ' FROM MY_table'; EXEC (@sql);</code>
Dieser Code erstellt dynamisch eine SELECT
-Anweisung, indem er die Spalten der Tabelle durchläuft und nur diejenigen an die Abfrage anhängt, die keine „Beschreibung“ sind. Dadurch wird effektiv das gewünschte „SELECT * EXCEPT“-Verhalten simuliert. Dieser Ansatz kann zur Wiederverwendbarkeit in eine Funktion oder gespeicherte Prozedur gekapselt werden. Bedenken Sie, dass diese Methode aufgrund ihrer inhärenten Einschränkungen und Sicherheitsaspekte ausschließlich für das Debuggen in Nicht-Produktionsumgebungen gedacht ist.
Das obige ist der detaillierte Inhalt vonWie kann Dynamic SQL SELECT * EXCEPT in SQL Server zum Debuggen simulieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!