Voglio mantenere una tabella come cronologia e sostituirla con una vuota. Come posso farlo attraverso Management Studio?SQL Server copia tutte le righe da una tabella in un'altra tabella i.e duplicata
risposta
duplicare il vostro tavolo in una tabella di essere archiviati:
SELECT * INTO ArchiveTable FROM MyTable
cancellare tutte le voci della tabella:
DELETE * FROM MyTable
Non ce l'ho sql server in giro per testare, ma penso che sia solo:
insert into newtable select * from oldtable;
nice one! ma non mi fido mai dell'ordine dei campi;) – ntziolis
Se ci fosse un posto dove "SELECT *" dovrebbe essere usato in una query come questa ... Fa una copia della tabella senza dover sapere cosa c'è dentro. –
@Robin - Sono d'accordo sul fatto che * è una buona scelta qui, ** SE ** l'ordine dei campi è lo stesso;) – ntziolis
entrambi i casi è possibile utilizzare SQL RAW:
INSERT INTO DEST_TABLE (Field1, Field2)
SELECT Source_Field1, Source_Field2
FROM SOURCE_TABLE
Oppure utilizzare la procedura guidata:
- Fare clic destro sul Database -> Attività -> Esporta dati
- selezionare il database di origine/destinazione
- Seleziona sorgente/destinazione da tavolo e campi
- copiare i dati
poi eseguire:
TRUNCATE TABLE SOURCE_TABLE
select * into x_history from your_table_here;
truncate table your_table_here;
+1, questo è migliore della risposta selezionata. –
Per ulteriori informazioni sul motivo per cui è necessario utilizzare TRUNCATE anziché DELETE, consultare http://dba.stackexchange.com/questions/30325/delete-vs-truncate – user1069816
provare questo unico comando sia per eliminare e inserire i dati:
DELETE MyTable
OUTPUT DELETED.Col1, DELETED.COl2,...
INTO MyBackupTable
campione di lavoro:
--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
USCITA:
(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)
Ciò funzionerà:
select * into DestinationDatabase.dbo.[TableName1] from (
Select * from sourceDatabase.dbo.[TableName1])Temp
- 1. Elimina tutte le righe nella tabella
- 2. Righe conteggio SQL in una tabella
- 3. Elimina tutte le righe da una tabella, genera nullpointer
- 4. SQL Server che crea una tabella temporanea da un'altra tabella
- 5. sql: come copiare da una tabella in un'altra tabella
- 6. Copia righe da una tabella a un'altra, ignorando i duplicati
- 7. SQL Server: controllare se tutte le righe esiste in altra tabella
- 8. jQuery - come selezionare tutte le righe della tabella tra due righe della tabella nella stessa tabella
- 9. Come recuperare le righe cancellate dalla tabella del server SQL?
- 10. Inserimento di più righe in una tabella di SQL Server utilizzando una variabile di tabella
- 11. Select Top e Last righe di una tabella (SQL Server)
- 12. SQL foreach utilizzando le righe della tabella
- 13. PostgreSQL: copia dati da una tabella, database, server a un'altra tabella, un altro database, server
- 14. Visualizza dati di una tabella in SQL Server 2008
- 15. Finestra di dialogo Jquery/Ajax in cui selezionare tra tutte le righe di una tabella sql
- 16. Elimina tutte le righe in una tabella basata su un'altra tabella
- 17. chiare tutte le voci da una tabella con PHP
- 18. Copiare in modo programmatico gli indici da una tabella a un'altra in SQL Server
- 19. Copia tutte le righe in un'altra tabella nell'archivio tabelle di Azure
- 20. Come creare JSON da una tabella EAV in SQL Server
- 21. Inserire più righe nella tabella in SQL Server
- 22. SQL Server - Metadati tabella
- 23. Query di aggiornamento sulla tabella MySQL collegata da SQL Server
- 24. SQL Server - copia dati dalla tabella di staging
- 25. SELECT non righe di un'altra tabella, query SQL Server
- 26. selezionare le righe in una tabella tranne le righe dell'intestazione della tabella
- 27. Come rimuovere tutte le righe da una tabella tranne le prime due e l'ultima?
- 28. SQL Select righe da una tabella e aggiornare le stesse righe
- 29. Rileva modifiche su una tabella sql-server
- 30. Copia tabella da un database all'altro
Champion! Grazie! – iamjonesy
Funziona solo se ArchiveTable non è stato ancora creato, altrimenti verrà visualizzato l'errore "Nel database è già presente un oggetto denominato 'ArchiveTable'.". – Harvey
TRUNCATE è un'opzione migliore di DELETE. –