Как скопировать данные из одной таблицы в другую на основе критериев - PullRequest
0 голосов
/ 08 мая 2018

Я новый SQL и хочу скопировать определенные строки из одной таблицы в другую на основе определенных критериев. В настоящее время, что я делаю, я вставляю данные во временную таблицу и зацикливаю эту таблицу, присваиваю обязательные поля переменной и затем вставляю эти строки в другую таблицу. Но это выглядит неоднозначно. Есть ли эффективный способ сделать это?

Ответы [ 3 ]

0 голосов
/ 08 мая 2018

Если вы хотите создать новые записи в другой таблице, вы можете написать так

insert into employee1 (id, [name])
select id, [name] from employee2 where id >10
0 голосов
/ 08 мая 2018

Вот пример:

создать таблицу1

CREATE TABLE [dbo].[table1](
    [id] [int] NOT NULL,
    [package_name] [varchar](50) NULL,
    [task_name] [varchar](50) NULL)

создать таблицу2

CREATE TABLE [dbo].[table2](
    [id] [int] NOT NULL,
    [package_name] [varchar](50) NULL,
    [task_name] [varchar](50) NULL)

вставить в таблицу1

INSERT INTO table1 
VALUES ( 1, 'abc', 'def')

здесь мы выберем из таблицы1 и вставим в таблицу2

INSERT INTO [table2] SELECT * FROM [table1]  
0 голосов
/ 08 мая 2018

Более эффективный способ обновить таблицу - это объединить таблицы, как показано ниже.

UPDATE
     Table1
SET
     Table1.col1 = Table2.col1,
     Table1.col2 = Table2.col2
FROM Table1
    INNER JOIN Table2 ON Table1.id = Table2.id
WHERE
    Table2.id = 1
...