What could be the possible ways to replace Dynamic query in SQL SERVER -


i have scenario wherein sp implemented dynamic query , need remove implementation due performance factor. import functionality , insert our data excel staging table , there validate our data keeping data temp table. , inserting data physical tables if validation passes.

staging table can have 4 category of data(fparty, sparty, tparty, owner) being passed excel staging 1 @ time. , physical table these category contains different number of columns. hence @ runtime able know category of data , have create temp table accordingly validate data.

as of using dynamic query create temp table @ run time depending on category. procedure follow:

create procedure [dbo].[getdata_into_temptbl] (                      ,@categorytype varchar(50) -- fparty, sparty, tparty, owner) begin declare category cursor select fields dbo.stagingtable categoryname= @categorytype     open category fetch next category @field   while @@fetch_status = 0       begin  set @fieldstocreatetemptable = @ fieldstocreatetemptable + ',' + @field   fetch next category @field end close category deallocate category set @tbltemp = 'insert #temptabledata ('+@fieldstocreatetemptable+')' exec(@tbltemp) end 

above code working fine need replace dynamic nature of procedure. kindly suggest concept.

a table/cursor build comma separated list of columns overkill, major overkill.

you consider unwinding logic 4 simple stored procedures, can called based on logic, such categorytype

if @categorytype = 'fparty' begin     exec dbo.insertfpartytempdata  end else if @categorytype = 'sparty' begin     exec dbo.insertspartytempdata  end ... // etc 

Comments