Am derzeit keine Aufzeichnung einzufügen, wenn alle Spaltennamen inSQL Server gespeicherte Prozedur einfügen mit dynamischen exec
Beilageunten ist die SP
ALTER PROCEDURE [dbo].[test]
@tab_name nvarchar(50),
@tab_id int,
@tab_n nvarchar(50),
@tab_q int
as
Begin
declare @sql as nvarchar(50);
declare @counts as int;
select @sql='select @cnt=count(*) from '[email protected]_name+' where id='+cast(@tab_id as varchar)+';'
exec sp_executesql @sql,N'@cnt int output', @[email protected] output
wählen @counts als zählt
if @counts=1
begin
declare @sql1 as nvarchar(50);
select @sql1='update '[email protected]_name+' set quantity='+cast(@tab_q as varchar)+' where id='+cast(@tab_id as varchar)+';'
exec sp_executesql @sql1
end
else
begin
declare @sql2 as nvarchar(50);
set @sql2='insert into '[email protected]_name+' (id,name,quantity) values ('+CAST(@tab_id as varchar)+','''[email protected]_n+''''
set @sql2+=','+CAST(@tab_q as varchar)+');'
select @sql2
exec sp_executesql @sql2
end
End
"
command: exec dbo.test @tab_name='inventory',@tab_id=4,@tab_n='chiku',@tab_q=123
Datensatz wird eingefügt, wenn Spaltennamen entfernt werden, funktioniert aber nicht mit Spaltennamen während des Einfügens.
Bitte helfen.
Dank
declare @ sql1 als nvarchar (50) dat ist lang genug für die dynamische Abfrage? –
Danke frederik-de-clercq Ich habe es Max gemacht und es funktioniert .. Der Fehler wurde in Zeile 1 der Exec Befehl angezeigt .. wurde wirklich frustriert. Danke vielmals – Santhosh