Что не так в приведенном ниже - PullRequest
0 голосов
/ 16 февраля 2011

У меня

;with cte as
(
select rn=1, name = CAST('name'as varchar(50))
union all
select rn+1, CAST(name as varchar(50))+ CAST( (rn+1) as varchar(50))
from cte where rn<100)

select * from cte

ошибка

Сообщение 240, уровень 16, состояние 1, строка 1 Типы не соответствуют между якорем и рекурсивной частью в столбцеимя "рекурсивного запроса" cte ".

1 Ответ

1 голос
/ 16 февраля 2011

Попробуйте что-то вроде

;with cte as
(
select  rn=1, 
        name = CAST('name'as varchar(100))
union all
select  rn+1, 
        CAST(name as varchar(50))+ CAST( (rn+1) as varchar(50))
from cte where rn<100)

select * from cte

Вы должны помнить, что все поля в привязке и рекурсивной части должны быть одного типа. Это также относится и к полям varchar.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...