У меня есть запрос Dynamic SQl, как показано ниже.
Create #TempTable(ColumnA int, ColumnB int, ColumnC Int)
Insert into #TempTable(select A,B,C from Table1 where some condition formed dynamically)
Insert into #TempTable(select A,B,C from Table1 where some condition formed dynamically)
Insert into #TempTable(select A,B,C from Table1 where some condition formed dynamically)
Insert into #TempTable(select A,B,C from Table1 where some condition formed dynamically)
Insert into #TempTable(select A,B,C from Table1 where some condition formed dynamically)
select * from #TempTable
drop table #TempTable
Примечание. Число операторов вставки в #TempTablecan варьируется от 10 до 100, поэтому требуется много времени для выполнения
Я хотел бы знать, есть ли способ в SQL Server 2008 R2, с помощью которого я могу выполнять инструкции Insert параллельно и сокращать время выполнения?
Альтернативой временной таблицы является переменная таблицы, которая может выполнять все виды операций, которые мы можем выполнять в таблице Temp. Ниже приведен синтаксис использования переменной Table
Declare @TempTable TABLE(
ColumnA int, ColumnB int, ColumnC Int)
Insert into @TempTable
select 1 as ColumnA,2 as ColumnB,3 as ColumnC
Tablevariable всегда полезен для меньшего количества данных.
Создайте переменную varchar, чтобы удерживать ваши вставки. Добавьте цикл While и добавьте инструкции insert к переменной varchar. Затем вы можете выполнить sql следующим образом: sp_executesql @sql