![]() |
MSSQL - Tabellenspalten mittel Variablennamen erzeugen
Hallo,
ich versuche mittels einer Stored Procedure auf einem MSSQL Server eine Tabelle zu erstellen. Als Übergabeparameter übegebe ich der Procedure einen Wert @N, welches die Anzahl der Spalten angibt. Nun soll in der SP die Tabelle erzeugt werden, mit den Spaltennamen N1,N2,N2,...,NN. Befehle wie alter table test add @Spaltenname int schlagen jedoch fehl, mit der Fehlermeldung "Line 20: Incorrect syntax near '@Spaltenname'" Es scheint also, daß ich bei der Erstellung von Tabelle keine Variablennamen benutzen kann. Hat jemand ne Idee, wie ich das denn jetzt umgehen kann? Gruß und danke, Tom |
Re: MSSQL - Tabellenspalten mittel Variablennamen erzeugen
Guten Morgen Jelly,
die Ausführung von SQL-Statements in denen ein Parameter auftaucht ist wohl in den meisten Datenbanken nicht möglich. Mit MySQL kenne ich mich nicht aus, auf dem MSSQL-Server könnte man Dein Problem so lösen:
SQL-Code:
create procedure variableSelect @Tabelle varchar(30)
as begin declare @strSQL nvarchar(1000) set @strSQL = 'select * from ' + @Tabelle exec sp_executesql @strSQL end
Code:
ist eine Systemprozedur mit der ein beliebiges SQL-Statement ausgeführt werden kann. Der Übergabeparameter ist ein String (Datentyp nvarchar() bzw. nchar() ) und den kann man wiederum in einer Procedure erzeugen.
sp_executesql
Vielleicht gibt es ja bei MySQL was ähnliches. Viel Erfolg Niels |
Re: MSSQL - Tabellenspalten mittel Variablennamen erzeugen
Zitat:
Werd das mal daheim ausprobieren heut abend ausprobieren da ich hier an der Uni kein MSSQL installier hab. Diese Systemprozedur hab ich noch nicht gekannt, klingt aber sehr vielversprechend... Vielen Dank und Gruß, Tom |
Re: MSSQL - Tabellenspalten mittel Variablennamen erzeugen
Mein Gott bin ich blind.
Mit :nerd: wär das nicht passiert. Niels |
Re: MSSQL - Tabellenspalten mittel Variablennamen erzeugen
Naja, morgens um 7:42 seh ich auch noch nicht so klar :zwinker:
Gruß, Tom |
Re: MSSQL - Tabellenspalten mittel Variablennamen erzeugen
Hallo,
ech ne coole Sache mit sp_executesql... Klappt einwandfrei, danke :bounce2: Gruß, Tom |
Re: MSSQL - Tabellenspalten mittel Variablennamen erzeugen
Guten Morgen Tom,
freut mich zu hören. Würde mich interessieren, ob es ähnliche Lösungen für MySQl oder Firebird gibt. Kennt sich jemand damit aus? Niels |
Re: MSSQL - Tabellenspalten mittel Variablennamen erzeugen
Zitat:
Bevor MySQL Stored Procedures unterstützt werden wir noch bis Version 5 warten müssen, die aber immerhin schon in einer Beta Version verfügbar ist. Gruß, Tom |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz