Простой вопрос: как составить список первичных ключей таблицы с помощью T-SQL? Я знаю, как получить индексы для таблицы, но не могу вспомнить, как получить ПК.
sql
sql-server
tsql
Swilliams
источник
источник
a
,b
иc
, (в таком порядке) , то моя таблица имеет первичный композитный ключabc
?Как правило, сейчас рекомендуется использовать
sys.*
представленияINFORMATION_SCHEMA
в SQL Server, поэтому, если вы не планируете переносить базы данных, я бы использовал их. Вот как это сделать сsys.*
представлениями:источник
Это решение, которое использует только sys -tables.
В нем перечислены все первичные ключи в базе данных. Он возвращает схему, имя таблицы, имя столбца и правильный порядок сортировки столбцов для каждого первичного ключа.
Если вы хотите получить первичный ключ для определенной таблицы, вам нужно отфильтровать
SchemaName
иTableName
.IMHO, это решение очень общее и не использует строковых литералов, поэтому оно будет работать на любой машине.
источник
Вот еще один способ получить первичный ключ таблицы с помощью запроса sql :
Он используется
KEY_COLUMN_USAGE
для определения ограничений для данной таблицыЗатем использует, чтобы определить, является ли каждое из них первичным ключом.
OBJECTPROPERTY(id, 'IsPrimaryKey')
источник
Мне нравится метод INFORMATION_SCHEMA, но я использовал еще один: exec sp_pkeys 'table'
источник
Используя MS SQL Server, вы можете делать следующее:
Вы также можете выполнить фильтрацию по столбцу table_name, если вам нужна конкретная таблица.
источник
--Это еще одна модифицированная версия, которая также является примером сопутствующего запроса.
источник
В нем должны быть перечислены все ограничения (первичный ключ и внешние ключи), а в конце запроса следует указать имя таблицы.
Для справки прочтите - http://blogs.msdn.com/b/sqltips/archive/2005/09/16/469136.aspx
источник
источник
Спасибо, парень.
С небольшими вариациями я использовал его, чтобы найти все первичные ключи для всех таблиц.
источник
источник
Это дает вам столбцы, которые являются PK.
источник
Системная хранимая процедура
sp_help
предоставит вам информацию. Выполните следующую инструкцию:источник
Ниже запрос будет список первичных ключей из конкретной таблицы :
источник
Я рассказываю простую технику, которой следую
запустите этот код как запрос. Упомяните имя своей таблицы на месте table_name, для которого вы хотите знать первичный ключ (не забывайте одинарные кавычки). Результат будет выглядеть как прикрепленное изображение. Надеюсь, это поможет тебе
источник
Для списка столбцов первичного ключа, разделенного запятыми, для заданного имени таблицы и схемы:
источник
Попробуйте:
источник
Эта версия отображает схему, имя таблицы и упорядоченный список первичных ключей, разделенных запятыми. Object_Id () не работает для серверов ссылок, поэтому мы выполняем фильтрацию по имени таблицы.
Без REPLACE (Si1.Column_Name, '', '') он будет отображать открывающие и закрывающие теги xml для Column_Name в базе данных, в которой я тестировал. Я не уверен, почему в базе данных потребовалась замена «Column_Name», поэтому, если кто-то знает, прокомментируйте.
И тот же образец с использованием запроса Джорджа:
источник
Я нашел это полезным, дает список таблиц с разделенным запятыми списком столбцов, а затем также отдельный список запятых, которые являются первичным ключом
источник
источник
Могу я предложить более точный простой ответ на исходный вопрос ниже
Ноты:
источник
Возможно, это будет недавно опубликовано, но, надеюсь, это поможет кому-то увидеть список первичных ключей на сервере sql с помощью этого запроса t-sql:
Вы можете увидеть список всех внешних ключей, используя этот запрос, если хотите:
источник
Я нашел это от моего друга, очень эффективным, если вы ищете все первичные ключи таблицы по определенной схеме.
источник
Если вы хотите создать собственный ORM или сгенерировать код из заданной таблицы, то это может быть то, что вы ищете:
Вот как бы выглядел результат:
источник
Если нужен первичный ключ и тип, этот запрос может быть полезен:
источник