Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 почему выдается ошибка привидения типов?  [new]
beowulf_21_x
Member

Откуда:
Сообщений: 21
Как универсально получить в запросе строковое представление для поля
любого типа кроме бинарных.
Пробовал cast(['+@COL+'] as NVARCHAR( 50)) Like ''%'+ @SRCH+'%''' или
convert в nvarchar
Орет на одном из полей:
Conversion failed when converting the nvarchar value 'dbo' to data type int. хотя
на других интах все нормально. То есть это зависит от каких-то настроек
поля. Как сделать чтобы железно получить строку поля как в SQL Manager

Или вот такой запросик
SELECT @rcount = count(*) FROM dbo.[ATTACH_ADD_VIEW] WHERE
[NMK_CLASSIF_TYPE_NOTE] Like '%35893%'
Выдает ошибку Conversion failed when converting the nvarchar value 'dbo' to
data type int. Вроде поле VARCHAR. И что с того что это View

кстати в старой версии мс скуль не было еррора все лайкалось без всяких кастов и конвертов
17 сен 15, 15:22    [18161516]     Ответить | Цитировать Сообщить модератору
 Re: почему выдается ошибка привидения типов?  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
beowulf_21_x,

это что вообще такое?
cast(['+@COL+'] as NVARCHAR( 50)) Like ''%'+ @SRCH+'%'''
В CAST() особенно.
Где одинарные кавычки открываются, где закрываются?
17 сен 15, 15:55    [18161734]     Ответить | Цитировать Сообщить модератору
 Re: почему выдается ошибка привидения типов?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31989
beowulf_21_x
Или вот такой запросик
SELECT @rcount = count(*) FROM dbo.[ATTACH_ADD_VIEW] WHERE
[NMK_CLASSIF_TYPE_NOTE] Like '%35893%'
Выдает ошибку Conversion failed when converting the nvarchar value 'dbo' to
data type int. Вроде поле VARCHAR. И что с того что это View
Либо в самой вьюхе ошибка, либо вы выполняете не то, что тут пишете.
17 сен 15, 16:24    [18161909]     Ответить | Цитировать Сообщить модератору
 Re: почему выдается ошибка привидения типов?  [new]
всегда так делаю
Guest
iap,

просто колонка называется
['+@COL+']

что тут непонятного.
весело селектить, весело менять, весело на клиенте fieldbyname писать. хэй.
17 сен 15, 16:26    [18161917]     Ответить | Цитировать Сообщить модератору
 Re: почему выдается ошибка привидения типов?  [new]
o-o
Guest
вью запросто может быть при чем.
какая-нибудь подобная лабудища:
create table dbo.t (id int, col nvarchar(100));
go

insert into dbo.t (id, col)
values (1, 'dbo');
go

create view dbo.vw_t
as
select *
from dbo.t;
go

select *
from dbo.vw_t
where id = 1;
---
id	col
1	dbo

select *
from dbo.vw_t
where col = 'dbo';
---
id	col
1	dbo


drop table dbo.t;
go

create table dbo.t (col nvarchar(100), id int);
go

insert into dbo.t (id, col)
values (1, 'dbo');
go

select *
from dbo.vw_t
where id = 1;
---
Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the nvarchar value 'dbo' to data type int.

select *
from dbo.vw_t
where col = 'dbo';
---
Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the varchar value 'dbo' to data type int.

только именно вашу ошибку не могу получить,
т.к. или 'dbo' лежит в столбце, а в фильтре int,
или в фильтре 'dbo', а в столбце int.
в любом случае советую ваше вью отрефрешить или пересоздать, и без звезды
17 сен 15, 16:29    [18161932]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить