Spalte name als parameter in der INSERT-Anweisung

Ich möchte, um eine zu erstellen gespeicherte Prozedur wo ich will, zum einfügen von Werten in eine Tabelle.
Aber ich weiß nicht in welches Feld muss ich das einfügen von Werten und an der
Laufzeit werde ich entscheiden, in welches Feld die Werte, die eingefügt werden soll.
Was ich tun möchte, ist

insert into Tablename(@ColumnName, Description) 
values (@ColumnValue, @MH_Description)

Kann es sein, dass ich übergeben Sie diese Art der Parameter in der gespeicherten Prozedur, wie im obigen Beispiel gezeigt??

Möchte ich die Bedingungen der Nutzung zu, wie

declare @Query nvarchar(4000)
declare @Abfrage1 vom Datentyp nvarchar(4000)
declare @ParmDefinition vom Datentyp nvarchar(500);

set @Query = '
    insert into tbl_temp(' + quotename(@ColumnName) +',Description)

    values (@ColumnValue, @Description)'
    set @Query1 = '
    update tbl_temp set' + quotename(@ColumnName) +'=@ColumnValue, Description=@Description'
set @ParmDefinition = N'@ColumnValue varchar(100),@Description varchar(100)'
if exists(select 'true' from tbl_temp where quotename(@ColumnName)=@ColumnValue)
begin         
  exec sp_executesql @Query1, @ParmDefinition, @ColumnValue = @ColumnValue, @Description = @Description
end
else 
begin      exec sp_executesql @Query, @ParmDefinition, @ColumnValue= @ColumnValue, @Description = @Description
end

Was mache ich falsch?

InformationsquelleAutor Saloni | 2011-06-23
Schreibe einen Kommentar