Назад | Перейти на главную страницу

Запрос MSSQL не работает, даже если есть данные

Пытаюсь выполнить более сложный SQL-запрос на сервере MS SQL, но не получаю вывода данных. Логически должно быть хорошо, но я не понимаю, почему это не работает:

SELECT D.NAME DATABASE_NAME,T.NAME TABLE_NAME,I.NAME INDEX_NAME,C.NAME COLUMN_NAME FROM sys.dm_db_index_physical_stats (NULL, NULL, NULL , NULL, 'LIMITED') XXX INNER JOIN SYS.DATABASES D ON D.DATABASE_ID = XXX.DATABASE_ID INNER JOIN SYS.TABLES T ON T.OBJECT_ID = XXX.OBJECT_ID INNER JOIN SYS.INDEXES I ON I.OBJECT_ID = T.OBJECT_ID INNER JOIN SYS.INDEX_COLUMNS IC ON IC.OBJECT_ID = I.OBJECT_ID INNER JOIN SYS.COLUMNS C ON C.OBJECT_ID = IC.OBJECT_ID ORDER BY D.NAME, T.NAME

Если я сбегу SELECT * FROM sys.dm_db_index_physical_stats (NULL, NULL, NULL , NULL, 'LIMITED'), Я получаю правильные данные, поэтому другой запрос должен работать, но все равно не работает.

Любые идеи?

Я предполагаю, что вы запускаете это в главном ... sys.dm_db_index_physical_stats отчеты на глобальном уровне, другие таблицы на уровне базы данных.

вы можете подтвердить это, выполнив ИСПОЛЬЗОВАНИЕ и выполнив должен увидеть возвращенные данные. Вы также можете использовать sp_msforeachDB ( http://weblogs.sqlteam.com/joew/archive/2008/08/27/60700.aspx) для выполнения кода в каждой базе данных.