powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как узнать длину поля ?
4 сообщений из 4, страница 1 из 1
Как узнать длину поля ?
    #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
Как узнать длину поля ?
    #32044241
Serg___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посмотри
select * from dbo.syscolumns WHERE id = object_id(N'ИмяТаблицы') AND name='ИмяПоля'

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

Интересующие вас поля - это CHARACTER_MAXIMUM_LENGTH и CHARACTER_OCTET_LENGTH
...
Рейтинг: 0 / 0
Как узнать длину поля ?
    #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
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как узнать длину поля ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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