Как я могу получить имена всех таблиц в базе данных? - PullRequest
2 голосов
/ 02 июня 2011

EDIT2: найдено исправление!Я использовал номер нужной схемы вместо имени.Должен был подумать об этом раньше, правда!И я думаю, что сообщения об ошибках могли бы быть немного лучше.Спасибо за ваше время!

Как я могу получить имена всех таблиц в базе данных через sql внутри asp classic?Сервер работает под управлением windows 2008, iis7.5 и microsoft jet.Я перепробовал все запросы, которые мог найти в интернете (и здесь), но ни один не помог.

Если я добавлю;на запрос на одновременный запуск набора запросов он выдает ошибку, поскольку оператор не завершен через точку с запятой.
Невозможно получить доступ к базе данных master.mdf, поскольку она имеет неизвестный формат.
Переменная sysobjects, очевидно, не существует.
Я использую формат mssql 2000.(.mdf)
Соединение устанавливается через классический asp с поставщиком Microsoft.Jet.OLEDB.4.0 и соединением / набором записей ADODB.

Как получить список всех таблиц в базе данныхиспользуя TSQL?
Запрос для получения имен всех таблиц в базе данных SQL Server 2008

РЕДАКТИРОВАТЬ: я обнаружил две папки, содержащие базы данных.Один находится в C:\program files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\mssql\binn\templates и содержит master.mdf, mastlog.ldf, model.mdf, modellog.ldf, msdbdata.mdf и msdblog.ldf.Другой также находится в каталоге \binn\template data и содержит master.mdf, mastlog.ldf, model.mdf, modellog.ldf, MSDBData.mdf, MSDBLog.ldf, mssqlsystemresource.ldf, mssqlsystemresource.mdf, tempdb.mdf и templog.ldf.Может быть, это представляет какой-то интерес?

Как я могу узнать, если у меня есть разрешение?Выдает ли это разрешение на ошибку?

Пожалуйста, помогите!Нет не надоПрочитайте 2-е редактирование вверху.

Ответы [ 4 ]

2 голосов
/ 02 июня 2011
USE YOUR_DATABASE
GO
SELECT *
FROM sys.Tables
GO 
1 голос
/ 02 июня 2011

Я почти всегда использую INFORMATION_SCHEMA просмотров:

SELECT * FROM INFORMATION_SCHEMA.TABLES

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

Так что, если вы пойдете этим путем, действуйте с осторожностью.

1 голос
/ 02 июня 2011

Вы пробовали пример из:

http://www.kamath.com/codelibrary/cl002_listtables.asp

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

Сам по себе mdf бесполезен: вам нужен механизм базы данных (например, экземпляр SQL Server) для его запуска. Насколько я понимаю вопрос, это ваша проблема.

Затем вы можете использовать sysobjects в вашей базе данных: если вы не добавили свои таблицы в основную базу данных

Нет практического способа напрямую использовать mdf: если ничего не загружается, MSDE

...