답변
declare @tableName as nvarchar(100)
set @tableName = 'table'
select i.name, c.name
from sys.index_columns ic
join sys.indexes i on ic.index_id=i.index_id
join sys.columns c on c.column_id=ic.column_id
where
i.[object_id] = object_id(@tableName) and
ic.[object_id] = object_id(@tableName) and
c.[object_id] = object_id(@tableName) and
is_primary_key = 1
왜 100 개입니까? 시스템 이름은 128이 될 수 있습니다. – MartW
정말 이유가 없습니다. 방금 짝수를 사용했습니다. –
@Jonas : 128도 짝수입니다 :-) –
어떻게 SQL Server의 기본 키 이름을 얻는 방법을 가르쳐주세요 그렇진 당신이있어 무엇을 찾고,하지만 당신은 그것으로 주위를 재생할 수 있습니다 :
SQL 2000: T-SQL to get foreign key relationships for a table 여기
가 INFORMATION_SCHEMA 뷰를 사용하는 다른 옵션들
SELECT
cu.Table_Catalog,
cu.Table_Schema,
cu.table_name,
cu.Constraint_name ,
cu.column_name
FROM
sys.indexes si
inner join INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE cu
on si.name = cu.constraint_name
WHERE
is_primary_key = 1
,
+1 데이터베이스 별 sys 테이블보다 좋습니다. (@ SOLO : 얼마나 느린가? :) –
그냥 성능 노트 - INFORMATION_SCHEMA보기를 사용하는 선택보다 몇 배 빠른 sys 테이블을 사용합니다.
- 1. 테이블의 기본 키 정보?
- 2. MySQL의 많은 테이블의 기본 키
- 3. 복수 열 조회가있는 기본 키
- 4. 기본 테이블의 기본 키를 종속 테이블의 외래 키 필드로 전달해야합니다.
- 5. mysql 테이블의 기본 키 값이 항상 동일
- 6. 테이블의 특정 행에 대한 기본 키 값을 검색하는 쿼리 선택
- 7. 기본 키 테이블의 기본 키를 기준으로 외래 키 테이블의 행 수 얻기
- 8. 데이터베이스의 기본 키 값을
- 9. 여러 개의 기본 키
- 10. 오라클 객체 유형 테이블의 기본 키 설정
- 11. 테이블의 기본 키 이름 가져 오기
- 12. Oracle 기본 키
- 13. 기본 키 값을 모호하게해야합니까?
- 14. SubSonic 기본 키 문제
- 15. 는 기본 키
- 16. 오라클의 기본 키 업데이트
- 17. 기본 키 변경 외래 키 변경
- 18. Oracle 복합 기본 키/외래 키 질문
- 19. mysql에서 기본 키 삭제
- 20. Hibernate와 문자열 기본 키
- 21. Yii ActiveRecord 기본 키 검색
- 22. 데이터베이스 테이블의 기본 기본 키 변경시 문제가 발생했습니다
- 23. 음속 기본 키 오류
- 24. Activerecode HABTM 기본 키 문제
- 25. 쿼리로 테이블 기본 키 열 가져 오기
- 26. Subsonic2.2 및 NEWSEQUENTIALID() 기본 키 열
- 27. 키 조합 후 기본 키 이벤트 변경
- 28. 복합 기본 키 업데이트
- 29. SQLAlchemy는 기본 키 열에 어떤 순서를 사용합니까?
- 30. 개인 테이블 기본 키
일종의 일반적인 데이터베이스 유틸리티로 작업하고 있다고 가정합니다. 그렇지 않으면 **이 정보를 이미 알아야합니다 **. 이 정보를 얻기 위해'sysobects'와'sysindexes' 시스템 테이블에 대한 쿼리를 작성합니다. 그러나 MS가 SQL Server의 이후 버전에서 유용한 메타 데이터보기를 제공한다는 사실을 알고 있습니다. 그리고 그것들을 사용하는 것이 더 나을 것입니다. –
기본 키가 한 열만 참조 할 것으로 예상되는 것처럼 질문이 읽 힙니다. 이는 항상 사실과 다릅니다. 물론 모든 테이블에 PK가 없습니다. – MartW