Таблицы списков T-SQL, столбцы

В T-SQL (SQL Server 2000). Как я могу перечислить все таблицы и столбцы в базе данных? Кроме того, в отдельном запросе есть способ перечислить все столбцы вместе с типом данных и ограничениями (NULLS и т. Д.). Благодарю.

 Martin Smith15 мая 2013 г., 21:23
Посмотрите наINFORMATION_SCHEMA просмотров или,sysobjectssyscolumns и т.п.
 Juliano Alves15 мая 2013 г., 21:22
Вы пробовали что-нибудь?

Ответы на вопрос(2)

которые вы можете перечислить:

Опция 1:

SELECT db_name() as DATABASE_NAME, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION,
       COLUMN_DEFAULT, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH,
       NUMERIC_PRECISION, NUMERIC_PRECISION_RADIX, NUMERIC_SCALE,
       DATETIME_PRECISION
FROM INFORMATION_SCHEMA.COLUMNS

Вариант 2:

DECLARE @SQL VARCHAR(8000)
SELECT  @SQL = ''
SELECT  @SQL = @SQL + 'UNION
SELECT ''' + name + ''' [DataBaseName], t.name [TableName], c.name [ColumnName], st.name [DataType] FROM ' + name + '..sysobjects t INNER JOIN ' + name + '..syscolumns c ON t.id = c.id INNER JOIN '+ name + '..systypes st on c.xtype = st.xtype where t.xtype = ''U'''
FROM master..sysdatabases
WHERE name IN ('databasename1', 'databaseName2')  -- change here !!
SELECT @SQL = RIGHT(@SQL, LEN(@SQL)-5) + ' ORDER BY 1, 2, 3'
EXEC(@SQL)

Вариант 3:

select db_name() as database_name
    ,table_name = sysobjects.name
    ,column_name = syscolumns.name
    ,datatype = systypes.name
    ,length = syscolumns.length
from sysobjects
inner join syscolumns on sysobjects.id = syscolumns.id
inner join systypes on syscolumns.xtype = systypes.xtype
where sysobjects.xtype = 'U'
order by sysobjects.name
    ,syscolumns.colid
Решение Вопроса

Пожалуйста, проверьтеинформационная схема.

select *
from MyDatabaseName.information_schema.columns
order by table_name, ordinal_position
 user180438715 мая 2013 г., 22:10
Я только что нашел это. еще раз спасибо
 user180438715 мая 2013 г., 21:56
Спасибо, Тим, я ценю это. Есть ли способ добавить в какую базу данных назначены таблицы? Вижу, каталог мастер.
 Tim Lehner15 мая 2013 г., 21:59
use MyDatabaseName;затем запрос.MSDN: выбор базы данных, Или добавьте имя БД в свойfrom пункт в нормальном4-х частей моды (Я'мы добавили это в ответ).

Ваш ответ на вопрос