Chcę utworzyć listę kolumn w SQL Server 2005, które mają kolumny tożsamości i odpowiadającą im tabelę w T-SQL.
Wyniki wyglądałyby następująco:
TableName, ColumnName
Chcę utworzyć listę kolumn w SQL Server 2005, które mają kolumny tożsamości i odpowiadającą im tabelę w T-SQL.
Wyniki wyglądałyby następująco:
TableName, ColumnName
Innym potencjalnym sposobem zrobienia tego w przypadku programu SQL Server, który w mniejszym stopniu opiera się na tabelach systemowych (które mogą ulec zmianie, od wersji do wersji), jest użycie widoków INFORMATION_SCHEMA:
select COLUMN_NAME, TABLE_NAME
from INFORMATION_SCHEMA.COLUMNS
where COLUMNPROPERTY(object_id(TABLE_SCHEMA+'.'+TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1
order by TABLE_NAME
INFORMATION_SCHEMA.COLUMNS
zawiera informacje o zwykłych tabelach i widokach i proponuję dodać TABLE_TYPE (dołączając INFORMATION_SCHEMA.TABLES) dla czytelności zestawu wyników.sys.columns.is_identity = 1
na przykład,
źródło
Inny sposób (za rok 2000/2005/2012/2014):
UWAGA:
table_name_here
powinno byćschema.table
, chyba że schemat todbo
.źródło
W SQL 2005:
źródło
Wydaje się, że to zapytanie rozwiązuje problem:
źródło
oto działająca wersja dla MSSQL 2000. Zmodyfikowałem kod z 2005 roku znajdujący się tutaj: http://sqlfool.com/2011/01/identity-columns-are-you-nearing-the-limits/
źródło
Lista tabel bez kolumny Identity na podstawie odpowiedzi Guillermo :
źródło
Działa dla mnie następujące zapytanie:
źródło
Myślę, że to działa dla SQL 2000:
źródło
To zadziałało dla mnie przy użyciu Sql Server 2008:
źródło
Użyj tego :
źródło
To zadziałało w przypadku SQL Server 2005, 2008 i 2012. Okazało się, że sys.identity_columns nie zawiera wszystkich moich tabel z kolumnami tożsamości.
Patrząc na stronę dokumentacji, można również wykorzystać kolumnę statusu. Możesz także dodać czteroczęściowy identyfikator, który będzie działał na różnych serwerach.
Źródło: https://msdn.microsoft.com/en-us/library/ms186816.aspx
źródło
Z jakiegoś powodu serwer sql zapisuje niektóre kolumny tożsamości w różnych tabelach, kod, który działa dla mnie, jest następujący:
źródło