>데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 테이블의 기본 키를 검색하는 방법은 무엇입니까?

SQL Server에서 테이블의 기본 키를 검색하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-04 14:43:43259검색

How to Retrieve a Table's Primary Key in SQL Server?

SQL 쿼리를 사용하여 SQL Server에서 테이블 기본 키 검색

SQL Server에는 특정 테이블의 기본 키를 검색하는 몇 가지 접근 방식이 있습니다. 살펴보겠습니다.

접근 방법 1:

이 쿼리는 OBJECTPROPERTY 함수를 사용하여 기본 키로 지정된 열 이름을 선택합니다.

SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE OBJECTPROPERTY(OBJECT_ID(CONSTRAINT_SCHEMA + '.' + QUOTENAME(CONSTRAINT_NAME)), 'IsPrimaryKey') = 1
AND TABLE_NAME = 'TableName' AND TABLE_SCHEMA = 'Schema'

접근 2:

또는 sys.primary_keys라는 시스템 함수를 사용하여 기본 키 정보를 검색할 수 있습니다.

SELECT
  name,
  primary_key_id,
  object_id
FROM
  sys.primary_keys
WHERE
  object_id = OBJECT_ID('TableName')
ORDER BY
  primary_key_id;

MySQL 쿼리와의 비교:

제공된 MySQL 쿼리는 SQL Server 접근 방식과 약간 다릅니다. SQL Server에서는 SHOW KEYS 문을 사용하여 특정 Key_name을 명시적으로 나타낼 수 없습니다. 대신 OBJECTPROPERTY를 사용하여 기본 키 제약 조건의 CONSTRAINT_NAME을 지정해야 합니다.

MySQL과 SQL Server 모두에 이상적인 쿼리:

안타깝게도 직접 ​​SQL은 없습니다. MySQL과 SQL Server 모두에서 원활하게 작동하여 기본 키를 검색하는 쿼리입니다. 그러나 아래와 같이 데이터베이스 유형에 따라 다양한 시스템 테이블을 쿼리하는 동적 쿼리를 사용할 수 있습니다.

-- Check the database type
IF @@SERVERNAME LIKE '%MySQL%'
BEGIN
  SET @sqlQuery = 'SHOW KEYS FROM tablename WHERE Key_name = ''PRIMARY''';
END
ELSE
BEGIN
  SET @sqlQuery = 'SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE OBJECTPROPERTY(OBJECT_ID(CONSTRAINT_SCHEMA + ''.' + QUOTENAME(CONSTRAINT_NAME)), ''IsPrimaryKey'') = 1 AND TABLE_NAME = ''TableName'' AND TABLE_SCHEMA = ''Schema''';
END

EXEC sp_executesql @sqlQuery;

위 내용은 SQL Server에서 테이블의 기본 키를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.