powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не получается передать параметр для sp_executesql - не пойму в чем дело
3 сообщений из 3, страница 1 из 1
Не получается передать параметр для sp_executesql - не пойму в чем дело
    #32015831
Vit.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В таблице products среди прочих есть столбцы
с_state tinyint, sernum varchar(
Лок. переменная @dserial типа nvarchar(имеет вид 'БК 9999'.

Есть след.код в sp, изменяющий статус и символьный код товара
SET @SQLQuery = N'update dbo.products set c_state =9, sernum='+@dserial
SET @SQLQuery = @SQLQuery +N' where pid=423425325'
EXEC sp_executesql @SQLQuery

Проблема состоит как передать переменную в генерируемый запрос
ВМЕСТЕ С КАВЫЧКАМИ , иначе update не происходит

Пробовал передать как параметр - тоже не работает
...
Рейтинг: 0 / 0
Не получается передать параметр для sp_executesql - не пойму в чем дело
    #32015832
Фотография cvasil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Считайте кавычки
Должно быть:

set @dserial = '''БК 9999'''
.....
SET @SQLQuery = N'update dbo.products set c_state =9, sernum=''''' + @dserial + ''''''
.....
...
Рейтинг: 0 / 0
Не получается передать параметр для sp_executesql - не пойму в чем дело
    #32015908
Vit.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При установке значения через SET @dserial=<value> все работает.
У меня @dserial есть результат вот этого запроса:
SET @SQLQuery =N'select substring(max(sernum),1,2) +SPACE(1)+ cast((cast(substring(max(sernum),3,6) as int)+1) as nvarchar(5)) as sn'
SET @SQLQuery =@SQLQuery + N' from products where sernum is not null'
EXEC sp_executesql @SQLQuery,N'@sn nvarchar( out',@sn = @dserial out

и подставляться в указанный запрос ну никак не желает.

PS.Еще заметил, что фокус проявляется с датами(т.е. переменные, где незримо есть символ quot).
Полученная внутри sp_executesql @SQLQuery дата сильно отличалась от
предполагаемой-
результат convert(nvarchar(10),getdate(),110) в isql и внутри генерируемого запроса
при присвоении отличается кардинально!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не получается передать параметр для sp_executesql - не пойму в чем дело
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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