プライマリキーまたは代替キーではないテーブルからすべての列名を取得するクエリを作成する方法の指摘がありますか。具体的には、クエリから代替キーを除外したいと思います。プライマリキーと代替キー以外のテーブル内のすべての列を一覧表示するSQL Serverクエリ
3
A
答えて
4
DECLARE @tableName nvarchar(max) = 'table_name'
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @tableName
EXCEPT
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS [tc]
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE [ku] ON tc.CONSTRAINT_NAME = ku.CONSTRAINT_NAME
AND ku.table_name = @tableName
1
データベースシステムは、列(または列の集合)が代替キーであるかどうかを判断できません(代替キーという用語は、プライマリであった列キー - すべてのPK要件(ユニークでNOT NULL)を満たしていますが、何らかの理由でプライマリキーに選択されていませんでした。this article for referenceを参照してください)。
プライマリキー(または代替キー)が何を構成しているかを知るには、多くの「意味」ノウハウがあります。プライマリキーはプライマリキー制約に含まれて「タグ付け」されていますが、代替キーにはそのようなものはありません - プライマリキーになるようにしなかったため、テーブル内の通常の列になりますはプライマリキーである必要がありますが、そうではありません。
私はSQL Serverがあなたのためにそれらを把握することができるだろうか見ない...
1
私はsimmilar問題のためのキーのリストを取得しなければならなかったが、私はまた、COALESCEを使用していました。
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
JOIN sysobjects ON TABLE_NAME = name
WHERE TABLE_NAME = @tablename
AND COLUMN_NAME NOT IN (
SELECT name
FROM syscolumns
WHERE [id] IN (SELECT [id]
FROM sysobjects
WHERE [name] = @tablename)
AND colid IN (SELECT SIK.colid
FROM sysindexkeys SIK
JOIN sysobjects SO ON SIK.[id] = SO.[id]
WHERE SIK.indid = 1
AND SO.[name] = @tablename))
はたぶんあなたが選択するSYS.TABLESまたはINFORMATION_SCHEMAを持っている誰かのためのヘルプ:)
+0
この回答は、プライマリ列を除くすべての列を取得するのに便利です。 – Pirinthan
関連する問題
- 1. テーブルのすべての外部キーと複数の外部キーを同じテーブルに一覧表示する
- 2. 連想配列以外のすべてのキーを一覧表示する
- 3. SQL Serverインスタンス上のすべてのデータベース、すべてのテーブル、およびすべての列の一覧表示
- 4. SQL Server - プライマリキーと外部キーの関係
- 5. プライマリキー以外の列のクエリ?
- 6. データベース内のすべてのテーブルを一覧表示
- 7. ビューとテーブルの関係をすべて一覧表示する
- 8. BigQueryプロジェクト内のすべてのデータセットを一覧表示する
- 9. 複合プライマリキーの一部であるSQLテーブルの外部キー
- 10. テーブル内のファイルの一覧を表示
- 11. SQL Server 1つのjobrunからすべてのステップを一覧表示
- 12. すべてのcassandraテーブルを一覧表示する方法
- 13. FAT:ディレクトリ内のすべてのファイルを一覧表示する
- 14. TCL内のすべてのソースファイルを一覧表示するコマンド
- 15. リポジトリ内のすべての問題を一覧表示する
- 16. ステート内のすべてのステートを一覧表示する
- 17. ディレクトリ内のすべてのファイルを一覧表示するPython
- 18. セット内のすべてのアイデンティティを一覧表示するJSON
- 19. ディレクトリ内のすべてのフォルダを一覧表示する(PHP)
- 20. フォトライブラリ内のすべてのgifファイルを一覧表示する
- 21. スキーム:スコープ内のすべてのバインディングを一覧表示する
- 22. ワニスキャッシュ内のすべてのURLを一覧表示する
- 23. トピックブランチ内のすべてのコミットを一覧表示する
- 24. C#:アセンブリ内のすべてのクラスを一覧表示する
- 25. SQL Serverの一時テーブルの列の一覧を取得
- 26. テーブル内のすべての列のデータ型を取得するSQL Serverクエリ?
- 27. rtmfpグループ内のすべてのpeerIDを一覧表示
- 28. PHP Loopで配列内のすべての項目を一覧表示する
- 29. ブック内のすべてのVLookupを一覧表示します
- 30. 関連テーブルのプライマリキー(ID)以外の関連変数を表示
次のようになります。問題は、COALESCEはので、私はそれを取り除くためにキリルのソリューションを修正EXCEPTでは動作しないということでした〜から〜 –