Почему 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