SQL Server で SQL クエリを使用したテーブルの主キーの検索
SQL Server で SQL クエリを使用してテーブルの主キーを取得するには、若干の手順が必要ですMySQL とは異なるアプローチ。次のクエリ オプションを調べて主キー情報を取得します。
SQL Server クエリ:
SQL Server でよく使用されるクエリの 1 つは次のとおりです。
SELECT name AS PrimaryKey FROM sysobjects WHERE xtype = 'PK' AND name IN ( SELECT name FROM sysindexes WHERE id = object_id(TableName) )
TableName をクエリ内の実際のテーブル名に置き換えます。
別の SQL Serverクエリ:
SQL Server の代替クエリを以下に示します。
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'
再度、TableName と Schema を適切な値に置き換えます。
Universal MySQL および SQL Server のクエリ (非推奨):
直接的なクエリはありませんが、 SQL Server の質問で述べた MySQL クエリと同等ですが、両方のデータベース システムで機能する、より複雑なクエリを使用できます。
SELECT T.COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS AS T LEFT JOIN (SELECT DISTINCT C.TABLE_NAME, C.COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS U JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE AS C ON U.TABLE_SCHEMA = C.TABLE_SCHEMA AND U.TABLE_NAME = C.TABLE_NAME AND U.CONSTRAINT_NAME = C.CONSTRAINT_NAME) AS S ON T.TABLE_NAME = S.TABLE_NAME AND T.COLUMN_NAME = S.COLUMN_NAME WHERE T.TABLE_SCHEMA = 'TableName_Schema' AND T.TABLE_NAME = 'TableName'
このクエリは MySQL と SQL Server の両方で機能しますが、効率が低いため、最適なパフォーマンスを得るには推奨されません。
以上がSQL クエリを使用して SQL Server でテーブルの主キーを検索する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。