Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как узнать длину поля ? / 4 сообщений из 4, страница 1 из 1
19.08.2002, 13:19:05
    #32044238
Yossarian
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать длину поля ?
Как из всяких sys* узнать длину поля в таблице ?

Например, есть :
create table xxx
(
yyy char(11),
zzz nvarchar(22)
)

так вот, как выяснить эти самые 11 и 22 ?
select col_length('xxx','yy')
даст длину поля, но в байтах.
Есть ли общий способ узнать эту длину,
или надо что то вроде
если type='char' то length=col_length
если type='nvarchar' то length=col_length / 2
...
Рейтинг: 0 / 0
19.08.2002, 13:47:09
    #32044241
Serg___
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать длину поля ?
Посмотри
select * from dbo.syscolumns WHERE id = object_id(N'ИмяТаблицы') AND name='ИмяПоля'

Там есть поле length
...
Рейтинг: 0 / 0
19.08.2002, 13:51:43
    #32044244
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать длину поля ?
select * from INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'mytable' AND COLUMN_NAME = 'Mycolumn'

Интересующие вас поля - это CHARACTER_MAXIMUM_LENGTH и CHARACTER_OCTET_LENGTH
...
Рейтинг: 0 / 0
19.08.2002, 14:02:45
    #32044252
Yossarian
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать длину поля ?
Спасибо, все ясно.

Serg___, это не тот length.
Это в байтах.

Glory, а там, в этом view, как раз написано :

case when spt_dtp.LOCAL_TYPE_NAME in ('nchar', 'nvarchar', 'ntext')
then 2*OdbcPrec(col.xtype, col.length, col.xprec)
else OdbcPrec(col.xtype, col.length, col.xprec)
end

Видимо, это и есть ответ.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как узнать длину поля ? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]