Ich habe eine Tabelle, aus der ich mehrere Spalten löschen muss, die einem Muster folgen. Angenommen, die Spaltennamen in meiner Tabelle lauten (A1, A2, A3, B1, B2, B3), und ich muss alle Spalten löschen, die mit einem B beginnen (B1, B2, B3). Ich konnte diese in einer separaten Abfrage abrufen, aber immer noch keine drop-Anweisung für die Ausgabe ausführen. Ich schätze die Hilfe sehr. Bitte beachten Sie, dass ich keine Skripte mit Cursorn bereitstellen darf. Daher ist reines SQL vorzuziehen.
Vielen Dank,
Versuche dies. Verwenden Sie Dynamic SQL
diese Option , um Drop-Skripte für Spalten zu generieren , die einem bestimmten Muster folgen
DECLARE @sql NVARCHAR(max)=''
SELECT @sql += ' Alter table ' + TABLE_NAME + ' DROP COLUMN ' + COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'tablename'
AND TABLE_SCHEMA = 'SchemaName'
AND TABLE_CATALOG = 'DatabaseName'
AND COLUMN_NAME LIKE 'B%'
--print @sql
EXEC Sp_executesql @sql
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen