プライマリキーまたは代替キーではないテーブルからすべての列名を取得するクエリを作成する方法の指摘がありますか。具体的には、クエリから代替キーを除外したいと思います。プライマリキーと代替キー以外のテーブル内のすべての列を一覧表示する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. SQL Serverインスタンス上のすべてのデータベース、すべてのテーブル、およびすべての列の一覧表示
- 2. プライマリキー以外の列のクエリ?
- 3. データベース内のすべてのテーブルを一覧表示
- 4. 複合プライマリキーの一部であるSQLテーブルの外部キー
- 5. FAT:ディレクトリ内のすべてのファイルを一覧表示する
- 6. TCL内のすべてのソースファイルを一覧表示するコマンド
- 7. セット内のすべてのアイデンティティを一覧表示するJSON
- 8. C#:アセンブリ内のすべてのクラスを一覧表示する
- 9. トピックブランチ内のすべてのコミットを一覧表示する
- 10. rtmfpグループ内のすべてのpeerIDを一覧表示
- 11. 関連テーブルのプライマリキー(ID)以外の関連変数を表示
- 12. SQL Server管理スタジオで代替キーを表示していますか?
- 13. ディレクトリ内のすべてのフォルダを一覧表示し、
- 14. ディレクトリ内のすべてのフォルダを一覧表示
- 15. SQL Server 2000でフルテキストインデックスを持つ列を一覧表示
- 16. Facebook内の国のすべての都市を一覧表示するFQL
- 17. ディレクトリ内のすべてのサブディレクトリとファイルを一覧表示する
- 18. LDAP特定のグループのすべてのユーザーを一覧表示するクエリ
- 19. 現在のデータベースのプロパティをすべて一覧表示するSQL文
- 20. 外部キーもプライマリキーの一部です
- 21. ディレクトリ内のすべてのファイルを一覧表示する方法Silverlight
- 22. シェルからAPK内のすべてのアクティビティを一覧表示する
- 23. バッチファイル:ディレクトリ内のすべてのファイルを相対パスで一覧表示する
- 24. フォルダ内のすべての埋め込みリソースを一覧表示する
- 25. カテゴリのすべてのパフォーマンスカウンターを一覧表示する
- 26. ハドソン製のすべてのビルドを一覧表示するアプリケーション
- 27. ディスク上のすべてのパーティションを一覧表示する
- 28. スタイルシートのすべてのcssセレクタを一覧表示するソフトウェア
- 29. すべてのVOBのフォルダパスを一覧表示する方法
- 30. Google +のすべての+1を一覧表示する方法
次のようになります。問題は、COALESCEはので、私はそれを取り除くためにキリルのソリューションを修正EXCEPTでは動作しないということでした〜から〜 –