Почему sp_columns не возвращает результатов?

Я пытаюсь "описать" таблицу для другого сообщения, которое у меня есть в StackOverflow, но когда я запускаю sp_columns, результаты или строки не отображаются.

sp_columns assignee

Результаты:

A bunch of column headers...

Что случилось с моей базой данных, и почему это не работает?

Ответ 1

Вместо sp_columns использовать представления каталога (многие из этих процедур sp_ не обновляются для новых функций).

SELECT name, system_type_id, ...
  FROM sys.columns
  WHERE [object_id] = OBJECT_ID('dbo.TableName');
  ---- yes this is important ----^^^^

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

Ответ 2

Если вы подключены к неправильной базе данных, запрос будет выполняться без ошибок, но не вернет никаких результатов.

Например, если у вас есть таблица с именем assignee в базе данных patents и запускает этот запрос в базе данных master, вы не получите никаких результатов и никаких ошибок:

sp_columns 'dbo.assignee';

Результаты:

Nothing, nada, zilch.

Если вы измените свое соединение, поэтому запрос применяется к правильной базе данных, вы получите результаты.

Ответ 3

Попробуйте, как показано ниже,

exec sp_columns yourTableName

Это возвращает информацию о столбцах для указанных таблиц и представлений, которые могут быть запрошены в текущей среде.

Примечание. Если таблица содержит данные, вы получите только список данных.

Ответ 4

Для конкретной схемы попробуйте:

sp_columns tableName, schemaName