Do tej pory nie można użyć jawnego BACKUP DATABASE
. Możesz jednak zrobić coś takiego - pamiętaj jednak, że - jak w moim komentarzu - dane te będą ograniczone, jeśli polegasz na jakiejkolwiek integralności danych, ponieważ zamówienie będzie względnie arbitralne i jeśli wszystko będzie 1: 1 i zdarzy ci się dostać magicznie dogodnym sortowania na wszystkich zapytań będzie to po prostu ogromny Hodge podge danych:
CREATE DATABASE copy_of_original;
GO
USE original_db;
GO
DECLARE @sql NVARCHAR(MAX);
SET @sql = N'';
-- this assumes all tables are in `dbo` schema:
SELECT @sql = @sql + CHAR(13) + CHAR(10)
+ 'SELECT TOP (100) * INTO copy_of_original.dbo.'
+ QUOTENAME(name) + ' FROM dbo.' + QUOTENAME(name) + ';'
FROM sys.tables
WHERE schema_id = 1;
PRINT @sql;
-- EXEC sp_executesql @sql;
Kiedy skończysz ten można backup copy_of_original
- ale należy pamiętać, że nie będzie miał którykolwiek z indeksów lub ograniczeń obecnych w oryginalnej bazie danych, i że TOP
wybierze dowolny zestaw 100 wierszy z każdej tabeli (lub całej tabeli, dla małych tabel z mniej niż 100 wierszy).
To nie jest kopia zapasowa, to eksport danych. Podstawowym celem kopii zapasowej jest odtwarzanie po awarii, nie ma sensu ograniczanie liczby rekordów. Co próbujesz osiągnąć? Z jakich poleceń/narzędzi korzystałeś w MySQL? –
Chociaż możesz to technicznie zrobić, jak zamierzasz użyć 100 wierszy z każdej tabeli? Czy absolutnie nie ma żadnej integralności referencyjnej? (Podejrzewam, że nie można pobrać 100 klientów i 100 zamówień bez naruszania integralności lub pisania bardzo złożonych instrukcji.) –
Ma sens, jeśli masz bazę danych o pojemności 10 TB i potrzebujesz prostej wersji do pracy nad nią. I o ile znalazłem, nie ma łatwego rozwiązania dla SQL Server – Salim