Как выяснить тип определения SQL Server 2008 R2 View - PullRequest
0 голосов
/ 19 февраля 2011

Сегодня я просматривал определения в базе данных, используя sqlalchemy 0.6 (используя get_view_definition ()), и наткнулся на одно, которое было длиннее 4000 символов. MS, кажется, говорит ( Представления информационной схемы для VIEWs ), которые не должны быть возвращены. MS SQL Server Management Studio показывает все (ну, по крайней мере, начало и конец выглядят правильно), если вы спросите о дизайне представления. sqlalchemy возвращает строку, усеченную до 4000 символов (шипение, шипение). Как я могу спросить базу данных, какой тип она хочет вернуть для этого фрагмента данных, а не в зависимости от того, что, как я подозреваю, является устаревшей документацией. Я предполагаю, что тип, вероятно, varchar. Я просто хотел бы проверить это.

1 Ответ

3 голосов
/ 19 февраля 2011

Определения объектов, включая определения представлений, можно получить из представления sys.sql_modules или с помощью функции OBJECT_DEFINITION. Это включает в себя правильный тип NVARCHAR(MAX), который содержит не усеченное определение объекта.

Другие представления обратной совместимости, такие как sys.syscomments или INFORMATION_SCHEMA.VIEWS, содержат столбец типа NVARCHAR(4000), и такой тип, по определению, должен обрезать определение объекта после первого 4к символов. Многие кроссплатформенные инструменты будут полагаться на INFORMATION_SCHEMA представления и, возможно, sqlalchemy делает то же самое.

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