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

Откуда: Moscow
Сообщений: 91
Подскажите ПЛЗ где косяк.
DECLARE @SQL varchar(8000)

SET @SQL = '
truncate table hole
Declare @Counter int
Set @Counter = (select min('
+ @Field + ') from ' + @Table + ' Where ГодВыдачи=' + @Year + ')
while @Counter < (select max('
+ @Field + ') from ' + @Table + ' Where OrdYear=' + @Year + ')
begin
if @Counter not in (select distinct '
+ @Field + ' from ' + @Table + ' Where ГодВыдачи=' + @Year + ' AND ' + @Field + '= @Counter )
insert into hole (val)
Values (@Counter)
Set @Counter = @Counter + 1
end
'


exec(@SQL)


ошипка следующая -
автор
Syntax error converting the nvarchar value '
truncate table hole
Declare

Counter int
Set

Counter =(select min(Num) from Orders Where OrdYear=' to a column of data type int


Данные передаю следущие:
@Year=2004 @Field='Num' @Table='Orders '

Заранее спасиб.
13 фев 04, 14:04    [535099]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с динамическим запросом!  [new]
Glory
Member

Откуда:
Сообщений: 104760
Сделайте сначала

print @SQL

Затем скопируйте выданный вам текст запроса в другое окно QA и выполните Parse Query
13 фев 04, 14:06    [535104]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с динамическим запросом!  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37101
автор
@Year=2004

Параметр сделать строковым. Или конвертнуть в строку надо.
Типа
... + cast(@year as varchar(4) ) + ...
13 фев 04, 14:08    [535112]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с динамическим запросом!  [new]
Nir
Member

Откуда: Moscow
Сообщений: 91
Списиб я вообщем-то уже въехал!
Просто немного тупил!

Надо было @Year передавать как nvarchar.
13 фев 04, 14:09    [535115]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить