Мне нужно написать запрос на сервере SQL, чтобы получить список столбцов в конкретной таблице, связанные с ней типы данных (с длиной) и, если они не равны NULL. И мне удалось сделать это много.
Но теперь мне также нужно получить в той же таблице столбец - TRUE
если этот столбец является первичным ключом.
Как мне это сделать?
Мой ожидаемый результат:
Column name | Data type | Length | isnull | Pk
sql
sql-server
sql-server-2005
Shrayas
источник
источник
Ответы:
Чтобы избежать дублирования строк для некоторых столбцов, используйте user_type_id вместо system_type_id.
Просто замените
YourTableName
свое фактическое имя таблицы - работает для SQL Server 2005 и выше.Если вы используете схемы, замените
YourTableName
наYourSchemaName.YourTableName
гдеYourSchemaName
фактическое имя схемы иYourTableName
фактическое имя таблицы.источник
LEFT OUTER JOIN sys.index_columns ic LEFT OUTER JOIN sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id ON ic.object_id = c.object_id AND ic.column_id = c.column_id AND i.is_primary_key=1
Хранимая процедура sp_columns возвращает подробную информацию о таблице.
источник
Вы можете использовать запрос:
чтобы получить все необходимые метаданные, кроме информации о ПК.
источник
В SQL 2012 вы можете использовать:
Это даст вам имена столбцов вместе с их свойствами.
источник
Попробуй это:
источник
Чтобы убедиться, что вы получаете правильную длину, вам нужно будет рассматривать типы юникода как особый случай. Смотрите код ниже.
Для получения дополнительной информации см .: https://msdn.microsoft.com/en-us/library/ms176106.aspx
источник
Расширяя ответ Алекса, вы можете сделать это, чтобы получить ограничение PK
Должно быть, я пропустил, что вы хотите, чтобы флаг определял, является ли данный столбец частью PK, а не именем ограничения PK. Для этого вы бы использовали:
источник
С помощью имени таблицы в редакторе запросов выберите имя и нажмите Alt + F1, и вы получите всю информацию о таблице.
источник
Запустите
SELECT *
приведенный выше оператор, чтобы увидеть, что возвращает information_schema.columns.На этот вопрос ранее был дан ответ - https://stackoverflow.com/a/11268456/6169225
источник
Я немного удивлен, что никто не упомянул
источник
источник
Бросив еще один ответ в кольцо, это даст вам эти столбцы и многое другое:
источник
Для поиска, какой столбец в какой таблице основан на вашем типе данных поиска для трех разных таблиц в одной базе данных Этот запрос расширяется до «n» таблиц.
источник
Найти результат комбинирования для Datatype и Length и может иметь значение NULL и NULL. Используйте запрос ниже.
Вы найдете результат, как показано ниже.
Спасибо.
источник
источник
ПРИМЕЧАНИЕ: В НЕКОТОРОЙ ИДЕ ПЕРЕД ВЫБОРОМ N РАБОТАЕТ ИЛИ, В НЕКОТОРЫХ ИДЕ БЕЗ РАБОТЫ N
источник
Здесь нет первичного ключа, но это может помочь другим пользователям, которые просто хотели бы иметь имя таблицы с именем поля и основными свойствами поля
источник
Я только что сделал marc_s "презентация готова":
источник