집 >데이터 베이스 >MySQL 튜토리얼 >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 중국어 웹사이트의 기타 관련 기사를 참조하세요!