Для больших вставок я сделал причудливые (и, возможно, суетливые) макеты.Некоторые примеры:
INSERT MyTable ( MyTableId, Name, Description, SomeStringData1
,SomeStringData2, SomeStringData3, SomeStringData4, MoreStringData1
,MoreStringData2, MoreStringData3, MoreStringData4, SomeNumericData1
,SomeNumericData2, SomeNumericData3, SomeNumericData4, MoreNumericData1
,MoreNumericData2, MoreNumericData3, MoreNumericData4, BigBlobAA
,BigBlobBB, EnteredAtDate, UpdatedAtDate, RevisedAtDate
,NeedAnotherDate )
values
( @MyTableId, @Name, @Description, @SomeStringData1
,@SomeStringData2, @SomeStringData3, @SomeStringData4, @MoreStringData1
,@MoreStringData2, @MoreStringData3, @MoreStringData4, @SomeNumericData1
,@SomeNumericData2, @SomeNumericData3, @SomeNumericData4, @MoreNumericData1
,@MoreNumericData2, @MoreNumericData3, @MoreNumericData4, @BigBlobAA
,@BigBlobBB, @EnteredAtDate, @UpdatedAtDate, @RevisedAtDate
,@NeedAnotherDate )
Это работает, если вы чертовски уверены, что никогда не будете вставлять столбцы или иным образом изменять то, что вставляется.Он получает все на одном экране и позволяет довольно просто определить, какое значение входит в какой столбец.
Если вставленные значения могут измениться или являются сложными (например, операторы case), я делаю следующее(обойти все, кроме каждого пятого элемента):
INSERT MyTable
(
MyTableId
,Name
,Description
,SomeStringData1
,SomeStringData2
,SomeStringData3
,SomeStringData4
,MoreStringData1
,MoreStringData2
,MoreStringData3
,MoreStringData4
,SomeNumericData1
,SomeNumericData2
,SomeNumericData3
,SomeNumericData4
,MoreNumericData1
,MoreNumericData2
,MoreNumericData3
,MoreNumericData4
,BigBlobAA
,BigBlobBB
,EnteredAtDate
,UpdatedAtDate
,RevisedAtDate
,NeedAnotherDate
)
values
(
MyTableId
,Name
,Description
,SomeStringData1
,SomeStringData2
,SomeStringData3
,SomeStringData4
,MoreStringData1
,MoreStringData2
,MoreStringData3
,MoreStringData4
,case
when something then 'A'
when orOther then 'B'
else 'Z'
end
,SomeNumericData2
,SomeNumericData3
,SomeNumericData4
,MoreNumericData1
,MoreNumericData2
,MoreNumericData3
,MoreNumericData4
,BigBlobAA
,BigBlobBB
,EnteredAtDate
,UpdatedAtDate
,RevisedAtDate
,NeedAnotherDate
)
(После добавления этого оператора CASE я "посчитал отступы", чтобы убедиться, что все выстроено правильно.)
ТребуетсяНемного усилий, чтобы все правильно расположить, но это может упростить обслуживание, поддержку и последующую модификацию.