2012-07-31 15 views
6

Mam bazę danych z 69 tabelami i chcę wybrać tylko pierwsze trzy rekordy z każdej tabeli.Wybierz pierwsze 3 wiersze każdej tabeli w bazie danych

mogę to zrobić za stołem z:

SELECT TOP 3 * 
    FROM table_schema.table_name 

Jednak gdybym miał to zrobić ręcznie, zajęłoby dużo czasu.

Czy możesz zaproponować obejście problemu?

Próbowałem this solution ale mogę zmusić go do pracy (nie wiem, jak go zmodyfikować dla MSSQL)

EDYCJA Dzięki za odpowiedzi. Prawdopodobnie nie byłem wystarczająco jasny: chciałem przeanalizować każdy pojedynczy stół i zdobyć tylko 3 najlepsze rekordy, niż przejść do następnego. kod Jarosław jest poniżej jest to, co potrzebne

DECLARE @sql VARCHAR(MAX)=''; 
SELECT @[email protected]+'SELECT TOP 3 * FROM '+'['+SCHEMA_NAME(schema_id)+'].['+name+']'+';' 
    FROM sys.tables 
EXEC(@sql) 
+1

trzech pierwszych zapisów zgodnie z tym co ?, kolumna tabeli nie posiada naturalny porządek * * lub coś w ten sposób – Lamak

Odpowiedz

10

Tutaj masz:

DECLARE @sql VARCHAR(MAX)=''; 
SELECT @[email protected]+'SELECT TOP 3 * FROM '+'['+SCHEMA_NAME(schema_id)+'].['+name+']'+';' 
    FROM sys.tables 
EXEC(@sql) 
+1

Dzięki, kolego! Dokładnie tego potrzebowałem! Bardzo doceniane! Поздрави! – Phil

+1

Zapraszamy, rozwiązanie @Aushin jest szybkie i czyste, tylko "ale" jest to, że MSforeachtable i MSforeachdb są nieudokumentowanymi procedurami przechowywanymi, w związku z tym Microsoft ich nie obsługuje i może je zmienić w dowolnym czasie. – Yaroslav

+1

Po prostu pytanie uzupełniające: co by było być najlepszym sposobem na eksport wszystkich wyników jednocześnie? Wygląda na to, że mogę eksportować tylko "na stół"? Dzięki – Phil

5
exec sp_MSforeachtable 'select top 3 * from ?' 
+0

Dzięki, ale to działa tylko wtedy, gdy chcesz zrobić to ręcznie na stół. Komentarz Jarosława poniżej dotyczy tego, czego potrzebowałem. Dzięki za pomoc. – Phil

+2

Co masz na myśli ręcznie? – Aushin

+0

@Phil - Co masz na myśli mówiąc "działa tylko wtedy, gdy chcesz zrobić to ręcznie na stół" ?, o to pytasz, prawda? – Lamak

Powiązane problemy