Jakie są ukryte funkcje programu SQL Server ?
Na przykład nieudokumentowane procedury składowane w systemie, sztuczki, aby robić rzeczy, które są bardzo przydatne, ale niewystarczająco udokumentowane?
Odpowiedzi
Dziękujemy wszystkim za wszystkie wspaniałe odpowiedzi!
Procedury przechowywane
- sp_msforeachtable: Uruchamia polecenie za pomocą „?” zastąpione nazwą każdej tabeli (wer. 6.5 i nowsze)
- sp_msforeachdb: Uruchamia polecenie za pomocą „?” zastąpione każdą nazwą bazy danych (wersja 7 i nowsze)
- sp_who2: podobnie jak sp_who, ale z dużo większą ilością informacji na temat rozwiązywania problemów z blokami ( wersja 7 i nowsze )
- sp_helptext: Jeśli chcesz kod procedury przechowywanej, zobacz & UDF
- sp_tables: zwraca listę wszystkich tabel i widoków bazy danych w zakresie.
- sp_stored_procedures: zwraca listę wszystkich procedur przechowywanych
- xp_sscanf: Odczytuje dane z łańcucha do lokalizacji argumentów określonych przez każdy argument formatu.
- xp_fixeddrives:: Znajdź dysk twardy z największą ilością wolnego miejsca
- sp_help: Jeśli chcesz poznać strukturę tabeli, indeksy i ograniczenia tabeli. Również widoki i UDF. Skrót to Alt + F1
Fragmenty
- Zwracanie wierszy w losowej kolejności
- Wszystkie obiekty użytkownika bazy danych według daty ostatniej modyfikacji
- Tylko data powrotu
- Znajdź rekordy, których data przypada gdzieś w bieżącym tygodniu.
- Znajdź rekordy, które miały miejsce w zeszłym tygodniu.
- Zwraca datę początku bieżącego tygodnia.
- Zwraca datę na początku ubiegłego tygodnia.
- Zobacz tekst procedury wdrożonej na serwerze
- Usuń wszystkie połączenia z bazą danych
- Tabela suma kontrolna
- Suma kontrolna wiersza
- Upuść wszystkie procedury w bazie danych
- Ponownie mapuj identyfikatory logowania poprawnie po przywróceniu
- Wywołaj procedury przechowywane z instrukcji INSERT
- Znajdź procedury według słowa kluczowego
- Upuść wszystkie procedury w bazie danych
- Zapytaj programowo o dziennik transakcji dla bazy danych.
Funkcje
- HashBytes ()
- EncryptByKey
- Polecenie PIVOT
Misc
- Dodatki parametrów połączenia
- TableDiff.exe
- Wyzwalacze zdarzeń logowania (nowość w dodatku Service Pack 2)
- Zwiększanie wydajności dzięki utrwalonym kolumnom obliczeniowym (PCC).
- Ustawienie DEFAULT_SCHEMA w sys.database_principles
- Wymuszona parametryzacja
- Vardecimal Storage Format
- Wyszukanie najpopularniejszych zapytań w kilka sekund
- Skalowalne współużytkowane bazy danych
- Filtr tabeli / procedury składowanej w SQL Management Studio
- Flagi śledzenia
- Liczba po
GO
powtórzeniu partii - Bezpieczeństwo za pomocą schematów
- Szyfrowanie przy użyciu wbudowanych funkcji szyfrowania, widoków i tabel podstawowych z wyzwalaczami
sql-server
tsql
Sklivvz
źródło
źródło
Odpowiedzi:
W Management Studio można wstawić liczbę za znacznikiem końca partii GO, aby powtarzać tę partię tyle razy:
Wydrukuje „X” 10 razy. Może to uchronić Cię przed żmudnym kopiowaniem / wklejaniem podczas wykonywania powtarzających się czynności.
źródło
Wielu programistów SQL Server nadal nie wie o klauzuli OUTPUT (SQL Server 2005 i nowsze) w instrukcjach DELETE, INSERT i UPDATE.
Bardzo przydatna może być wiedza, które wiersze zostały WSTAWIONE, UPDATEd lub DELETEd, a klauzula OUTPUT pozwala to zrobić bardzo łatwo - umożliwia dostęp do wywoływanych tabel „wirtualnych”
inserted
ideleted
(jak w wyzwalaczach):Jeśli wstawiasz wartości do tabeli, która ma pole klucza podstawowego INT IDENTITY, z klauzulą OUTPUT, możesz od razu wstawić nowy identyfikator:
A jeśli aktualizujesz, może być bardzo przydatne wiedzieć, co się zmieniło - w tym przypadku
inserted
reprezentuje nowe wartości (po UPDATE), podczas gdydeleted
odnosi się do starych wartości przed UPDATE:Jeśli zostanie zwróconych wiele informacji, dane wyjściowe OUTPUT można również przekierować do tabeli tymczasowej lub zmiennej tabeli (
OUTPUT INTO @myInfoTable
).Niezwykle przydatne - i bardzo mało znane!
Marc
źródło
sp_msforeachtable
: Uruchamia polecenie za pomocą „?” zastąpione nazwą każdej tabeli. na przykładMożesz wydać do 3 poleceń dla każdej tabeli
Również,
sp_MSforeachdb
źródło
Dodatki parametrów połączenia:
MultipleActiveResultSets = true;
To sprawia, że ADO.Net 2.0 i nowsze wersje odczytują wiele zestawów wyników tylko do przodu, tylko do odczytu na jednym połączeniu z bazą danych, co może poprawić wydajność, jeśli dużo czytasz. Możesz go włączyć, nawet jeśli robisz różne typy zapytań.
Nazwa aplikacji = MyProgramName
Teraz, gdy chcesz zobaczyć listę aktywnych połączeń poprzez zapytanie do tabeli sysprocesses, nazwa twojego programu pojawi się w kolumnie nazwa_programu zamiast „.Net SqlClient Data Provider”
źródło
TableDiff.exe
Połączyć
źródło
Mniej znana technika TSQL do zwracania wierszy w losowej kolejności:
źródło
W Management Studio możesz szybko uzyskać listę kolumn rozdzielanych przecinkami dla tabeli:
Jest to przydatne, gdy nie chcesz używać obrzydliwego formatu zwracanego przez kliknięcie tabeli prawym przyciskiem myszy i wybranie Skryptu tabeli jako ..., a następnie Wstaw do ... Ta sztuczka działa z innymi folderami, ponieważ daje ci rozdzielana przecinkami lista nazw zawartych w folderze.
źródło
Konstruktory rzędów
Możesz wstawić wiele wierszy danych za pomocą jednej instrukcji insert.
źródło
Jeśli chcesz poznać strukturę tabeli, indeksy i ograniczenia:
źródło
HashBytes (), aby zwrócić skrót MD2, MD4, MD5, SHA lub SHA1 jego danych wejściowych.
źródło
Ustalanie najpopularniejszych zapytań
Link do Commnada
źródło
Zakładka wyników przestrzennych może służyć do tworzenia sztuki .
wprowadź opis linku tutaj http://michaeljswart.com/wp-content/uploads/2010/02/venus.png
źródło
Z WYJĄTKIEM I INTERSEKTEM
Zamiast pisać skomplikowane sprzężenia i podzapytania, te dwa słowa kluczowe są znacznie bardziej eleganckim skrótem i czytelnym sposobem wyrażenia intencji zapytania podczas porównywania dwóch wyników zapytania. Nowe od SQL Server 2005, silnie uzupełniają UNION, który istnieje już w języku TSQL od lat.
Pojęcia EXCEPT, INTERSECT i UNION są fundamentalne w teorii mnogości, która służy jako podstawa i podstawa modelowania relacyjnego stosowanego we wszystkich współczesnych RDBMS. Teraz wyniki typu diagramu Venna mogą być generowane bardziej intuicyjnie i dość łatwo przy użyciu TSQL.
źródło
Wiem, że nie jest dokładnie ukryty, ale niewiele osób wie o poleceniu PIVOT . Byłem w stanie zmienić procedurę przechowywaną, która używała kursorów, i zajęło mi 2 minuty, aby uruchomić szybki 6-sekundowy fragment kodu, który był jedną dziesiątą liczby wierszy!
źródło
przydatne podczas przywracania bazy danych do celów testowania lub cokolwiek innego. Ponownie zmapuj identyfikator logowania poprawnie:
źródło
Usuń wszystkie połączenia z bazą danych:
źródło
ALTER DATABASE MyDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE
zapobiegnie również pojawianiu się nowych połączeń.Tabela suma kontrolna
Suma kontrolna wiersza
źródło
Nie jestem pewien, czy jest to ukryta funkcja, czy nie, ale natknąłem się na to i przydało mi się to przy wielu okazjach. Można konkatować zestaw pól w pojedynczej instrukcji select, zamiast używać kursora i pętli w instrukcji select.
Przykład:
Wyniki:
źródło
Jeśli chcesz kod procedury składowanej, możesz:
(nie jestem pewien, czy jest to funkcja ukryta, ale używam jej cały czas)
źródło
Sztuczka z procedury składowanej polega na tym, że można ją wywoływać z instrukcji INSERT. Uznałem to za bardzo przydatne podczas pracy z bazą danych SQL Server.
źródło
W SQL Server 2005/2008, aby wyświetlić numery wierszy w wyniku zapytania SELECT:
ORDER BY jest klauzulą obowiązkową. Klauzula OVER () nakazuje silnikowi SQL sortowanie danych w określonej kolumnie (w tym przypadku OrderId) i przypisywanie liczb zgodnie z wynikami sortowania.
źródło
Przydatne do analizowania argumentów procedury składowanej: xp_sscanf
źródło
Tylko data powrotu
lub
źródło
dm_db_index_usage_stats
Dzięki temu możesz wiedzieć, czy dane w tabeli zostały ostatnio zaktualizowane, nawet jeśli nie masz kolumny DateUpdated w tabeli.
Kod z: http://blog.sqlauthority.com/2009/05/09/sql-server-find-last-date-time-updated-for-any-table/
Informacje, do których odwołuje się: SQL Server - Jaka jest data / godzina ostatniego wstawionego wiersza tabeli?
Dostępne w SQL 2005 i późniejszych
źródło
Oto kilka funkcji, które uważam za przydatne, ale wiele osób nie wie o nich:
Połączyć
Połączyć
źródło
Znajdź rekordy, których data przypada gdzieś w bieżącym tygodniu.
Znajdź rekordy, które miały miejsce w zeszłym tygodniu.
Zwraca datę początku bieżącego tygodnia.
Zwraca datę na początku ubiegłego tygodnia.
źródło
Nie tyle ukryta funkcja, ale konfigurowanie mapowania klawiszy w Management Studio w Tools \ Options \ Keyboard: Alt + F1 jest domyślnie ustawiony na sp_help „zaznaczony tekst”, ale nie mogę żyć bez dodania Ctrl + F1 dla sp_helptext „zaznaczonego tekstu”
źródło
Utrwalone-obliczone-kolumny
Połączyć
źródło
Są chwile, kiedy nie ma odpowiedniej kolumny do sortowania, lub po prostu chcesz domyślną kolejność sortowania w tabeli i chcesz wyliczyć każdy wiersz. Aby to zrobić, możesz wpisać „(wybierz 1)” w klauzuli „sortuj według”, a otrzymasz to, co chcesz. Schludnie, co?
źródło
Proste szyfrowanie za pomocą EncryptByKey
źródło