Hi,
ich habe eine banale Tabelle:
CREATE TABLE [dbo].[test]( [eins] [varchar](50) NOT NULL, [zwei] [varchar](50) NULL, CONSTRAINT [PK_test] PRIMARY KEY CLUSTERED ( [eins] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]
mit zwei Spalten Eins und zwei, beide varchar(50)
mit den Werten
insert into test(eins, zwei) values(1,2)
1 und 2 in den entsprechenden Spalten.
Die Abfrage
select eins from testbringt auch korrekt das Ergebniss 1
Der folgende Code bringt im Ergebnissfenster ebenfalls das richtige Ergebniss 1
declare @in varchar(50), @sql nvarchar(500) set @in = 'eins' set @sql = 'select ' + @in + ' from test' Exec(@sql)kann allerdings nicht mit dem Outputparameter umgehen. Ich benötige das Ergebniss aber zum Weiterarbeiten.
Also:
exec sp_executesql N' Select @1 from test where zwei = @2',N'@1 nvarchar(100),@2 nvarchar(100)',@1=N'eins',@2=N'2'versucht und als Ergebniss 1 erwartet. Aber: Das ERgebniss ist
'eins'also der Spaltenname, nicht der Value.
Wie schaffe ich eine Abfrage nach dem Motto Select @Variable from @Variable2 where @variabel3 = @Variable4?
die Tabelle und die nSplate können auch noch fix sein, wichtig ist in erster Line die Select @Variable. Diesen Wert brauche ich, um weiterzuarbeiten.
Danke für die Hilfe