Proste pytanie, jak wypisać klucz podstawowy tabeli w T-SQL? Wiem, jak uzyskać indeksy na stole, ale nie pamiętam, jak uzyskać PK.
sql
sql-server
tsql
swilliams
źródło
źródło
a
,b
ic
(w tej kolejności), a następnie moja tabela ma klucz podstawowy kompozytowych oabc
?Ogólnie zaleca się teraz używanie
sys.*
widokówINFORMATION_SCHEMA
w SQL Server, więc jeśli nie planujesz migracji baz danych, użyłbym ich. Oto, jak byś to zrobił zsys.*
widokami:źródło
Jest to rozwiązanie, które wykorzystuje tylko sys -tables.
Zawiera listę wszystkich kluczy podstawowych w bazie danych. Zwraca schemat, nazwę tabeli, nazwę kolumny i poprawną kolejność sortowania kolumn dla każdego klucza podstawowego.
Jeśli chcesz uzyskać klucz podstawowy dla określonej tabeli, musisz przefiltrować
SchemaName
iTableName
.IMHO, to rozwiązanie jest bardzo ogólne i nie używa żadnych literałów ciągów, więc będzie działać na dowolnej maszynie.
źródło
Oto inny sposób z pytania, aby uzyskać klucz podstawowy tabeli za pomocą zapytania sql :
Używa
KEY_COLUMN_USAGE
do określenia ograniczeń dla danej tabeli.Następnie używa do określenia, czy każdy jest kluczem podstawowym
OBJECTPROPERTY(id, 'IsPrimaryKey')
źródło
Podoba mi się technika INFORMATION_SCHEMA, ale inną, której użyłem, jest: exec sp_pkeys 'table'
źródło
Korzystając z MS SQL Server możesz:
Możesz również filtrować według kolumny nazwa_tabeli, jeśli chcesz mieć określoną tabelę.
źródło
- To jest kolejna zmodyfikowana wersja, która jest również przykładem dla zapytania związanego
źródło
Powinno to zawierać listę wszystkich ograniczeń (klucz podstawowy i klucze obce), a na końcu zapytania podać nazwę tabeli
Aby uzyskać więcej informacji, przeczytaj - http://blogs.msdn.com/b/sqltips/archive/2005/09/16/469136.aspx
źródło
źródło
Dzięki Guy.
Z niewielkimi różnicami użyłem go do znalezienia wszystkich kluczy podstawowych dla wszystkich tabel.
źródło
źródło
Ten daje kolumny, które są PK.
źródło
Informacje
sp_help
zostaną podane przez systemową procedurę składowaną . Wykonaj następującą instrukcję:źródło
Poniżej zapytania będzie lista kluczy podstawowych z określonej tabeli :
źródło
Mówię prostą technikę, którą śledzę
uruchom ten kod jako zapytanie. Wymień nazwę swojej tabeli w miejscu nazwa_tabeli, dla której chcesz znać klucz podstawowy (nie zapomnij o pojedynczych cudzysłowach). Wynik będzie wyglądał jak załączony obraz. Mam nadzieję, że to ci pomoże
źródło
Aby uzyskać listę oddzielonych przecinkami kolumn klucza podstawowego dla danego TableName i Schema:
źródło
Spróbuj:
źródło
Ta wersja wyświetla schemat, nazwę tabeli i uporządkowaną listę kluczy podstawowych oddzielonych przecinkami. Object_Id () nie działa dla serwerów odsyłających, więc filtrujemy według nazwy tabeli.
Bez REPLACE (Si1.Column_Name, '', '') pokazywałoby otwierające i zamykające tagi XML dla Column_Name w bazie danych, na której testowałem. Nie jestem pewien, dlaczego baza danych wymagała zastąpienia kolumny „nazwa_kolumny”, więc jeśli ktoś wie, to proszę o komentarz.
I ten sam wzorzec, używając zapytania George'a:
źródło
Znalazłem to przydatne, podaje listę tabel z przecinkami oddzielną listę kolumn, a następnie również oddzielną przecinkami listę, które są kluczem podstawowym
źródło
źródło
Czy mogę zasugerować dokładniejszą prostą odpowiedź na pierwotne pytanie poniżej
Uwagi:
źródło
Może zostać niedawno opublikowane, ale mam nadzieję, że pomoże to komuś zobaczyć listę kluczy podstawowych na serwerze sql za pomocą tego zapytania t-sql:
Możesz zobaczyć listę wszystkich kluczy obcych, używając tego zapytania, jeśli chcesz:
źródło
Znalazłem to od mojego przyjaciela, bardzo skuteczne, jeśli szukasz wszystkich kluczy podstawowych tabeli w określonym schemacie.
źródło
Jeśli chcesz zrobić własny ORM lub wygenerować kod z podanej tabeli, to może być to, czego szukasz:
Oto jak wyglądałby wynik:
źródło
Jeśli potrzebny jest klucz podstawowy i typ, to zapytanie może być przydatne:
źródło