T-SQL запрос, чтобы показать определение таблицы? - PullRequest
98 голосов
/ 02 июня 2011

Что такое запрос, который покажет мне полное определение, включая индексы и ключи для таблицы SQL Server?Я хочу чистый запрос - и знаю, что SQL Studio может дать мне это, но я часто на «диких» компьютерах, которые имеют только самые простые приложения, и у меня нет прав на установку студии.Но SQLCMD всегда является опцией.

ОБНОВЛЕНИЕ: я пробовал sp_help, но просто возвращает одну запись, которая показывает Имя, Владелец, Тип и Created_Datetime.Есть ли еще что-то, чего мне не хватает в sp_help?

Вот что я называю:

sp_help airport *

Обратите внимание, что мне действительно нужен DDL, определяющий таблицу.

Ответы [ 16 ]

3 голосов
/ 21 октября 2014

Просто введите имя таблицы, выберите его и нажмите ATL + F1

Скажите, что имя вашей таблицы Customer, затем откройте новое окно запроса , введите и выберите имя таблицы инажмите ALT + F1

Появится полное определение таблицы.

2 голосов
/ 02 июня 2011

Другой способ - выполнить процедуру sp_columns .

EXEC sys.sp_columns @TABLE_NAME = 'YourTableName'
2 голосов
/ 02 июня 2011

Как дополнение к ответу Барри. Sp_help также может использоваться сам по себе для итерации всех объектов в конкретной базе данных. У вас также есть sp_helptext для вашего арсенала, который включает программные элементы, такие как хранимые процедуры.

2 голосов
/ 02 июня 2011

Попробуйте хранимую процедуру sp_help.

sp_help <>

0 голосов
/ 22 февраля 2017
SELECT ORDINAL_POSITION, COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH
       , IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'EMPLOYEES'
0 голосов
/ 05 апреля 2014

"Обратите внимание, что мне действительно нужен DDL, который определяет таблицу."

используйте pg_dump:

pg_dump -s -t tablename dbname

Это дает определение таблицы (-s только схема, без данных) определенная таблица (-t имя таблицы) в базе данных "dbname" в простом SQL. Кроме того, вы получите последовательность, первичный ключ и информацию об ограничениях. Вывод, который вы можете, может быть после проверки и редактирования в соответствии с вашими потребностями- снова вводиться в (ту же или другую) базу данных Postgres:

pg_dump -s -t tablename dbname1  > /tmp/foo.sql
psql -e dbname2 < /tmp/foo.sql

Это для UNIX / Linux, но я уверен, что pg_dump также существует для Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...