2015-02-23 1 views
-2

Nous essayons de créer une procédure stockée pour archiver les données de plus de 6 mois (180 jours) de notre base de données de production dans une nouvelle base de données d'archives.Procédure stockée pour archiver des données de plus de 6 mois (180) jours

Nous voulons également supprimer ces lignes archivées de la base de données de production.

Nous pensons inclure une boucle while, mais nous ne souhaitons archiver que 10 000 lignes par jour et nous devons la programmer quotidiennement.

Pouvez-vous s'il vous plaît nous partager votre expérience.

Merci

+2

Regardez dans le partitionnement https://msdn.microsoft.com/en-us/library/aa964122(v=sql.90).aspx – d89761

Répondre

0

Peut-être supprimer dans travaillerait pour vous? Trouvé quelque chose d'utile ici: https://msdn.microsoft.com/en-us/library/ms177564.aspx

USE AdventureWorks2012; 
GO 
DECLARE @MyTableVar TABLE 
(
    ProductID INT NOT NULL 
); 

DELETE TOP (10000) ph 
OUTPUT DELETED.ProductID INTO @MyTableVar 
FROM Production.ProductProductPhoto AS ph 
WHERE DATEDIFF(DAY, ph.YourDay, GETDATE()) > 180 
--Display the results of the table variable. 
SELECT * 
FROM @MyTableVar 
+0

Merci Evaldas, mais nous avons besoin de copier les anciennes données dans la base de données archivée avant de le supprimer. Avez-vous une autre option? – hagy516