Próbuję dwóch metod wyświetlania kolumn o określonej nazwie:
INFORMACJE_SCHEMA.KOLUMNY
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME='SUPPLIER_NAME';
SYS.COLUMNS
SELECT * FROM SYS.COLUMNS WHERE NAME='SUPPLIER_NAME'
Dlaczego zapytania wyświetlają inne dane wyjściowe?
sql-server
Vinoth _S
źródło
źródło
INFORMATION_SCHEMA.COLUMNS
jest tylko widoksys.columns
tegoINNER JOIN
s dosys.objects
i ogranicza do typów obiektów z tabeli lub widoku. Domyślam się, że jeden z twoich zapisówsys.columns
został wyeliminowany w tym ograniczeniu.Odpowiedzi:
Różnica pomiędzy
INFORMATION_SCHEMA.COLUMNS
isys.columns
jest typy obiektów, które obejmują.INFORMATION_SCHEMA.COLUMNS
jest ograniczony do tabel i widoków. Możesz rzucić okiem na kod za tym, wykonując następujące czynności:Jeśli spojrzysz na dół w klauzuli where, zobaczysz
Tutaj ogranicza się tylko do tabel i widoków.
Jeśli przyjrzysz się definicji sys.columns, zobaczysz, że zawiera ona kolumny dla wielu innych obiektów:
Uruchom to, a zobaczysz, co to jest dodatkowy obiekt i jakiego typu.
źródło