das die Idee:
Erstens:
Create new database:
Zweitens: Wählen Sie kleine Datensätze nur wie:
select top 500 from allYourTables
then insert to each every table to your new Database Created.
Drittens:
Dump the new database and give to its every developer
Hoffe, es hilft:
Unter der Annahme, dass Sie eine neue db_to_dev
Database Namen haben und Sie arbeiten, um Ihre aktuelle Datenbank: Diese Prozedur fügt alle Daten von Ihrem Arbeitsdatenbank, um sicherzustellen, dass Sie bereits eine Datenbank erstellt haben. db_to_dev
:
Information_Schema
können Sie in alle Tabellen auswählen:
CREATE PROCEDURE PROC_TRANSFER_DATA @NUM_OF_RECORDS nvarchar(255) as
BEGIN
SET NOCOUNT ON;
DECLARE @message varchar(80), @tablename nvarchar(50);
Declare @sqlstmt nvarchar(255);
PRINT '-------- List of tables --------';
DECLARE Schema_cursor CURSOR FOR
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
OPEN Schema_cursor
FETCH NEXT FROM Schema_cursor INTO @tablename
IF @@FETCH_STATUS <> 0
PRINT ' <<None>>'
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @message = ' ' + @tablename
set @sqlstmt = 'select top ' + @NUM_OF_RECORDS + ' * into [db_to_dev].[dbo].['+ @tablename +'] from ' + @tablename;
EXEC sp_executesql @sqlstmt
PRINT @message
FETCH NEXT FROM Schema_cursor INTO @tablename
END
CLOSE Schema_cursor
DEALLOCATE Schema_cursor
END
zu benutzen:
mit einer Option Parameter:
EXEC PROC_TRANSFER_DATA '500'
Parameterwert wird von Ihnen abhängen, ob, wie viele Datensätze, die Sie in Ihre neue Datenbank übertragen möchten db_to_dev
.
Dieser gespeicherte Proc ist getestet.
Viel Glück
tun haben Sie einen Nicht-Produktions-Server, die Sie über die Produktionsdatenbank kopieren und dann die Größe vor der Entwicklung reduzieren? – maSTAShuFu
Häufig sind transaktionale Tabellen sehr groß und Nachschlagetabellen sind klein. So können Sie Ihr Replikat vereinfachen, indem Sie einfach alle Nachschlagetabellen kopieren, auf die sich die Transaktionen beziehen, und dann ist jede Teilmenge der Transaktionen, die Sie auswählen, immer gültig. Dies ist ein guter Mittelweg für die Verringerung der Größe ohne Komplexität. Andernfalls müssen Sie ein benutzerdefiniertes Skript schreiben, das sich durch alle FK's bewegt. Wenn Sie sehr große Nachschlagetabellen haben, ist dies möglicherweise nicht die richtige für Sie. –
@maSTAShuFu Ja, ich habe einen Nicht-Produktionsserver, um eine Kopie der Prod-DB auszuführen. – Bash