Помогите задать значение переменной.

MikleBess
Дата: 16.01.2009 16:30:40
Хочу задать значение строковой переменной, а оно ругается :(
Пробовал по всякому
а учебника по SQL нету
(MSSQL 2000 и MSSQL 2005)
declare @prim varchar;
set @prim=(select convert(varchar,@h_id)+'|'+convert(varchar,@h_DocNumber)+'|'+convert(varchar,@h_TDate)+'||0|'
 +(select convert(varchar,Object)+' '+ShortDesc from t_objects where id=@h_Object)
 +'|'+(select ShortDesc from t_objects where id=@h_Contr)
 +'||'+(convert(varchar,@h_BaseRate)+'|||||0|0|0|0');
Паганель
Дата: 16.01.2009 16:34:21
MikleBess
Хочу задать значение строковой переменной, а оно ругается :(
Так и говорит "я ругаюсь"?
Сообщение об ошибке, пожалуйста, приведите
MikleBess
Дата: 16.01.2009 16:37:03
Паганель,

Я привел кусок из процедуры - линия 79 в моем примере последняя - 5-я

Msg 170, Level 15, State 1, Line 79
Line 79: Incorrect syntax near ';'.
MikleBess
Дата: 16.01.2009 16:38:37
О!!! Посыпаю голову пеплом!!!! скобка просто лишняя была!
Паганель
Дата: 16.01.2009 16:39:39
Возьмите себе за правило хоть как-то форматировать свой код:
declare @prim varchar;
set @prim = (select convert(varchar, @h_id) 
                    + '|' + convert(varchar, @h_DocNumber) 
                    + '|' + convert(varchar, @h_TDate)
                    +'||0|'
                    + (select convert(varchar,Object)
                              + ' ' + ShortDesc
                         from t_objects
                        where id = @h_Object
                       )
                    + '|' + (select ShortDesc
                               from t_objects
                              where id = @h_Contr
                             )
                    + '||'
                    + (convert(varchar, @h_BaseRate)
                    + '|||||0|0|0|0'
             );
Теперь видно?

ЗЫ И возьмите себе за правило указывать размерность varchar