Копия SQL Server все строки от одной таблицы в другую т.е. дублирующуюся таблицу

Я хочу сохранить таблицу как историю и заменить ее пустой. Как я могу сделать это через Studio управления?

22
задан Sandor Drieënhuizen 12 May 2015 в 14:40
поделиться

5 ответов

Скопируйте вашу таблицу в таблицу для архивации:

SELECT * INTO ArchiveTable FROM MyTable

Удалите все записи в вашей таблице:

DELETE * FROM MyTable
33
ответ дан 29 November 2019 в 03:26
поделиться

попробуйте эту единственную команду, чтобы удалить и вставить данные :

DELETE MyTable
    OUTPUT DELETED.Col1, DELETED.COl2,...
        INTO MyBackupTable

рабочий пример:

--set up the tables
DECLARE @MyTable table (col1 int, col2 varchar(5))
DECLARE @MyBackupTable table (col1 int, col2 varchar(5))
INSERT INTO @MyTable VALUES (1,'A')
INSERT INTO @MyTable VALUES (2,'B')
INSERT INTO @MyTable VALUES (3,'C')
INSERT INTO @MyTable VALUES (4,'D')

--single command that does the delete and inserts
DELETE @MyTable
    OUTPUT DELETED.Col1, DELETED.COl2
        INTO @MyBackupTable

--show both tables final values
select * from @MyTable
select * from @MyBackupTable

ВЫХОД:

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(4 row(s) affected)
col1        col2
----------- -----

(0 row(s) affected)

col1        col2
----------- -----
1           A
2           B
3           C
4           D

(4 row(s) affected)
2
ответ дан 29 November 2019 в 03:26
поделиться

Нет SQL-сервера для тестирования, но я думаю, что это просто:

insert into newtable select * from oldtable;
21
ответ дан 29 November 2019 в 03:26
поделиться

Вы можете использовать RAW SQL:

INSERT INTO DEST_TABLE (Field1, Field2) 
SELECT Source_Field1, Source_Field2 
FROM SOURCE_TABLE

или использовать мастер:

  1. Щелкните правой кнопкой мыши базу данных -> Задачи -> Экспорт данных
  2. Выберите исходную / целевую базу данных
  3. Выберите исходную / целевую таблицу и поля
  4. Скопируйте данные

Затем выполните:

TRUNCATE TABLE SOURCE_TABLE
9
ответ дан 29 November 2019 в 03:26
поделиться
select * into x_history from your_table_here;
truncate table your_table_here;
21
ответ дан 29 November 2019 в 03:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: