Какой запрос покажет мне полное определение, включая индексы и ключи для таблицы SQL Server? Мне нужен чистый запрос - и я знаю, что SQL Studio может дать мне это, но я часто нахожусь на «диких» компьютерах, на которых установлены только самые простые приложения, и у меня нет прав на установку Studio. Но SQLCMD - это всегда вариант.
ОБНОВЛЕНИЕ: я пробовал sp_help, но он просто дает одну запись, которая показывает имя, владельца, тип и Created_Datetime. Что-то еще мне не хватает в sp_help?
Вот что я называю:
sp_help аэропорты
Обратите внимание, что мне действительно нужен DDL, определяющий таблицу.
sql-server
tsql
Дэниел Уильямс
источник
источник
sp_help
что он возвращает несколько наборов результатов. Вы описываете столбцы, возвращаемые первым набором результатов.Ответы:
Нет простого способа вернуть DDL. Однако вы можете получить большую часть деталей из представлений информационной схемы и системных представлений .
источник
sp_columns
как я упоминал в своем ответе. Если вам нужна информация о FK, запуститеsp_fkeys
. Если вы хотите узнать индексы, выполнитеsp_statistics
.Вы пробовали sp_help?
источник
Посетите http://www.stormrage.com/SQLStuff/sp_GetDDL_Latest.txt .
Вы найдете код
sp_getddl
процедуры для SQL Server. Цель процедуры - создать сценарий для любой таблицы, временной таблицы или объекта.ИСПОЛЬЗОВАНИЕ:
или
или
или
Я тестировал его на SQL Server 2012, и он отлично справляется.
Я не автор процедуры. Любые улучшения, которые вы вносите в него, отправляйте Лоуэллу Изагирре (scripts@stormrage.com).
источник
Самый простой и быстрый способ, который я могу придумать, - это использовать sp_help
sp_help 'TableName'
источник
Используйте это небольшое приложение командной строки Windows, которое получает
CREATE TABLE
сценарий (с ограничениями) для любой таблицы. Я написал это на C #. Просто скомпилируйте его и перенесите на карту памяти. Возможно, кто-нибудь сможет перенести его на Powershell.источник
источник
Это вернет столбцы, типы данных и индексы, определенные в таблице:
Это вернет триггеры, определенные в таблице:
источник
Начиная с SQL 2012 вы можете запускать следующий оператор:
Если вы введете сложный оператор выбора (объединения, подзапросы и т. Д.), Он даст вам определение набора результатов. Это очень удобно, если вам нужно создать новую таблицу (или временную таблицу), и вы не хотите проверять каждое определение поля вручную.
https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-describe-first-result-set-transact-sql
источник
Просто введите имя таблицы, выберите его и нажмите ATL + F1.
Скажите, что имя вашей таблицы
Customer
затем открывает новое окно запроса , введите и выберите имя таблицы и нажмите ALT + F1.Он покажет полное определение таблицы.
источник
Вариант ответа @Anthony Faull для тех, кто использует LINQPad:
Вам нужно будет сослаться на 2 сборки:
И добавьте ссылки на пространства имен, как указано во фрагменте Anthony.
источник
Я знаю, что это старый вопрос, но именно то, что я искал. Поскольку я хочу создать пакетный сценарий для некоторых таблиц, я переписал код C # от Энтони Фаулла для PowerShell.
Здесь используется встроенная безопасность:
А вот с логином и паролем:
источник
Попробуйте хранимую процедуру sp_help.
sp_help <>
источник
В дополнение к ответу Барри. Процедуру sp_help также можно использовать отдельно для перебора всех объектов в конкретной базе данных. У вас также есть sp_helptext для вашего арсенала, который выполняет сценарии программных элементов, таких как хранимые процедуры.
источник
Другой способ - выполнить процедуру sp_columns .
источник
источник
«Обратите внимание, что мне действительно нужен DDL, определяющий таблицу».
используйте pg_dump:
Он дает вам определение таблицы (
-s
это только схема, без данных) определенной таблицы (имя таблицы-t
) в базе данных"dbname"
на простом SQL. Дополнительно вы получите информацию о последовательности, первичном ключе и ограничениях. Результат, который вы можете - возможно, после проверки и редактирования в соответствии с вашими потребностями - снова загрузить в (ту же или другую) базу данных Postgres:Это для UNIX / Linux, но я уверен, что pg_dump существует и для Windows.
источник