powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Динамический запрос, возникли проблемы, помогоите плз.
10 сообщений из 10, страница 1 из 1
Динамический запрос, возникли проблемы, помогоите плз.
    #32052994
doctor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В sp формируется динамический запрос на update, фрагмент кода
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
*****
Declare @maxNumber int
select @maxNumber = max(number)
from (serial s inner join type_view t on s.id_type=t.id and id_group=@id_group)
     inner join equipment e on e.id_sn=s.id and id_host_place=@id_host_place and number is not null
If @maxNumber is not Null  
	set @maxNumber =  @maxNumber +  1 
***********
Declare @strSQL nvarchar( 1024 ),@i int
select	@i = '0',
	@strSQL = N'update equipment set '

If @id_host_place != '0' begin
	set @strSQL = @strSQL + N'id_host_place=''' + convert(nvarchar( 12 ),@id_host_place) + ''''
	set @i = '1'
End
If @basic = '1' 
		set @strSQL = @strSQL + N',number=''' + convert(nvarchar( 12 ),@maxNumber) + ''''

print (@strSQL)  -- для проверки
 
**
 --exec (strSQL)
 

сам вопрос
Когда значение @maxNumber is not NULL , все работает
когда is Null переменная @strSQL становится пустой "print (@strSQL)" ни чего не возвращает .
Подскажите пожалуйста как обойти это. Не хочется в таблице менять Null , на 0.
...
Рейтинг: 0 / 0
Динамический запрос, возникли проблемы, помогоите плз.
    #32052995
Фотография VVG_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select @maxNumber = isnull(max(number),0) наверное
...
Рейтинг: 0 / 0
Динамический запрос, возникли проблемы, помогоите плз.
    #32052999
doctor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2VVG_

Так конечно можно, но тогда поле number будет апдейтится на '0', а надо чтоб number стал NULL

не хочется скрипты перелопачивать
...
Рейтинг: 0 / 0
Динамический запрос, возникли проблемы, помогоите плз.
    #32053000
Александр Спелицин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Два варианта:
1. Declare @maxNumber int
select @maxNumber = 0 select @maxNumber = max(number) From...
Это пройдет, если у Вас number Not Null

2.
If @maxNumber is not Null
set @maxNumber = @maxNumber + 1
Else
set @maxNumber = 1
Или Select @maxNumber = IsNull (@maxNumber, 0) + 1
...
Рейтинг: 0 / 0
Динамический запрос, возникли проблемы, помогоите плз.
    #32053003
Фотография Nickolay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
If @basic = '1'
Begin
if @MaxNumber Is Not Null
set @strSQL = @strSQL + N',number=''' + convert(nvarchar(12),@maxNumber) + ''''
else

End

print (@strSQL) -- для проверки
**
--exec (strSQL)
...
Рейтинг: 0 / 0
Динамический запрос, возникли проблемы, помогоите плз.
    #32053004
Фотография Nickolay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное так:
If @basic = '1'
Begin
if @MaxNumber Is Not Null
set @strSQL = @strSQL + N',number=''' + convert(nvarchar(12),@maxNumber) + ''''
else
set @strSQL = @strSQL + N',number=Null'
End

print (@strSQL) -- для проверки
**
--exec (strSQL)
...
Рейтинг: 0 / 0
Динамический запрос, возникли проблемы, помогоите плз.
    #32053011
doctor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Александр Спелицин, Nickolay
Подождите мужики
if @MaxNumber Is Not Null то все нормально, берется следующий номер и апдайтится поле number,
но мне на горе есть еще else
else(@MaxNumber Is Nul)
вот тут начились траблы
мне надо поле number updat-ить на null, но после
Код: plaintext
1.
set @strSQL = @strSQL + N',number=''' + convert(nvarchar( 12 ),@maxNumber) + ''''

переменная @strSQL становиться пустой (((((((((
Единственное, что в голову приходить делать отдельно
Код: plaintext
1.
2.
if @MaxNumber Is Null 
        update equipment set number = NUll where ......

q тригер переделывать придется, а не хоться
Помогите!!!!
...
Рейтинг: 0 / 0
Динамический запрос, возникли проблемы, помогоите плз.
    #32053016
doctor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот слона, то мы и незаметили :-)

СПАСИБО Nickolay
Пока писал, пришел ваш ответ(второй)
...
Рейтинг: 0 / 0
Динамический запрос, возникли проблемы, помогоите плз.
    #32053019
VAT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если так:
convert(nvarchar(12), isnull(@maxNumber, 'null'))
...
Рейтинг: 0 / 0
Динамический запрос, возникли проблемы, помогоите плз.
    #32053022
doctor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VAT
если убрать ковычки, то работает
спасибо
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Динамический запрос, возникли проблемы, помогоите плз.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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