it-swarm.asia

إدراج صفوف متعددة في استعلام SQL واحد؟

لدي مجموعة متعددة من البيانات لإدراجها مرة واحدة ، قل 4 صفوف.

يحتوي الجدول الخاص بي على ثلاثة أعمدة: Person و Id و Office.

INSERT INTO MyTable VALUES ("John", 123, "Lloyds Office");
INSERT INTO MyTable VALUES ("Jane", 124, "Lloyds Office");
INSERT INTO MyTable VALUES ("Billy", 125, "London Office");
INSERT INTO MyTable VALUES ("Miranda", 126, "Bristol Office");

هل يمكنني insert الصفوف الأربعة في SQL statement واحد؟

1535
rits

في SQL Server 2008 ، يمكنك إدراج صفوف متعددة باستخدام عبارة SQL INSERT واحدة.

INSERT INTO MyTable ( Column1, Column2 ) VALUES
( Value1, Value2 ), ( Value1, Value2 )

للإشارة إلى ذلك ، ألق نظرة على MOC Course 2778A - كتابة استعلامات SQL في SQL Server 2008.

فمثلا:

INSERT INTO MyTable
  ( Column1, Column2, Column3 )
VALUES
  ('John', 123, 'Lloyds Office'), 
  ('Jane', 124, 'Lloyds Office'), 
  ('Billy', 125, 'London Office'),
  ('Miranda', 126, 'Bristol Office');
2058
BinaryMisfit

إذا كنت تقوم بالإدخال في جدول واحد ، فيمكنك كتابة استعلامك بهذا الشكل (ربما في MySQL فقط):

INSERT INTO table1 (First, Last)
VALUES
    ('Fred', 'Smith'),
    ('John', 'Smith'),
    ('Michael', 'Smith'),
    ('Robert', 'Smith');
756
too much php

ملاحظة: هذه الإجابة لـ SQL Server 2005. بالنسبة لـ SQL Server 2008 والإصدارات الأحدث ، هناك طرق أفضل بكثير كما هو موضح في الإجابات الأخرى.

يمكنك استخدام إدراج مع SELECT UNION ALL :

INSERT INTO MyTable  (FirstCol, SecondCol)
    SELECT  'First' ,1
    UNION ALL
SELECT  'Second' ,2
    UNION ALL
SELECT  'Third' ,3
...

فقط لمجموعات البيانات الصغيرة ، والتي يجب أن تكون جيدة لسجلاتك الأربعة.

128
DavGarcia