Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Помогите разобраться с запросом  [new]
dialog1984
Member

Откуда:
Сообщений: 20
iap
dialog1984
Получается вот так самое верное

UpDATE _ab_kart
SET fio = Replace(fio,'*','')
where date_end is null
and fio like '*%'

но вот такая вот ошибка

Сообщение 512, уровень 16, состояние 1, процедура check__ab_kart, строка 2
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.
Триггер на UPDATE у таблицы есть?



Да именно в точку. Он там есть
23 ноя 17, 15:08    [20978080]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
dialog1984
Эта ошибка из за триггера.
Нельзя обрабатывать больше одной записи за раз.
Нужна цикличность.
т.е.
Обработал одну запись (в моем случае фамилию) и заново запустился на обработку
И так покуда не обработает все.
Как это сделать?
Написать нормальный триггер.
Или запретить всем доступ к таблице, выключить триггер, проапдейтить, включить триггер, разрешить всем работать.
23 ноя 17, 15:09    [20978085]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
dialog1984
Member

Откуда:
Сообщений: 20
iap
dialog1984
Эта ошибка из за триггера.
Нельзя обрабатывать больше одной записи за раз.
Нужна цикличность.
т.е.
Обработал одну запись (в моем случае фамилию) и заново запустился на обработку
И так покуда не обработает все.
Как это сделать?
Написать нормальный триггер.
Или запретить всем доступ к таблице, выключить триггер, проапдейтить, включить триггер, разрешить всем работать.



Да я так попробовал. Все прошло без ошибок.
и обработал все записи как надо
23 ноя 17, 15:11    [20978102]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
dialog1984
Member

Откуда:
Сообщений: 20
А интересно.
Подскажите можно ли сделать так.
Вот у меня в таблице фамилия записана так, что состоит из всех заглавных букв
А можно ли сделать так чтобы первая осталась заглавная, а остальные все строчные?
23 ноя 17, 15:25    [20978192]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
dialog1984
А интересно.
Подскажите можно ли сделать так.
Вот у меня в таблице фамилия записана так, что состоит из всех заглавных букв
А можно ли сделать так чтобы первая осталась заглавная, а остальные все строчные?
В чём проблема? Отдельно обработать первый символ и остальные, а потом сложить?
23 ноя 17, 15:27    [20978205]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
dialog1984
Member

Откуда:
Сообщений: 20
iap
dialog1984
А интересно.
Подскажите можно ли сделать так.
Вот у меня в таблице фамилия записана так, что состоит из всех заглавных букв
А можно ли сделать так чтобы первая осталась заглавная, а остальные все строчные?
В чём проблема? Отдельно обработать первый символ и остальные, а потом сложить?


Для меня огромная проблема.
У меня даже в голове не укладывается как это делать
23 ноя 17, 15:29    [20978217]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
DECLARE @S VARCHAR(100)='adfjdjRFHDjhbkdxSD';
SELECT UPPER(LEFT(@S,1))+LOWER(STUFF(@S,1,1,''));
23 ноя 17, 15:32    [20978235]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1364
dialog1984,

В голове уложится когда прочитаете справку про строковые функции в SQL server
23 ноя 17, 15:33    [20978238]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
dialog1984
Получается вот так самое верное

UpDATE _ab_kart
SET fio = Replace(fio,'*','')
where date_end is null
and fio like '*%'

но вот такая вот ошибка

Сообщение 512, уровень 16, состояние 1, процедура check__ab_kart, строка 2
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.


Ахаххааха. Ой что это, триггер не дает нормально работать! К вопросу о недавнем разговоре...
23 ноя 17, 15:33    [20978243]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
DECLARE @S VARCHAR(100)='adfjdjRFHDjhbkdxSD';
SELECT STUFF(LOWER(@S),1,1,UPPER(LEFT(@S,1)));
23 ноя 17, 15:34    [20978246]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
982183
Member

Откуда: VL
Сообщений: 3352
dialog1984
Для меня огромная проблема.
У меня даже в голове не укладывается как это делать


Без обид. Очень интересно, а какое у вас образование?
Как сложилась так жизнь, что вам это понадобилось?
23 ноя 17, 15:36    [20978254]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
dialog1984
Member

Откуда:
Сообщений: 20
iap
DECLARE @S VARCHAR(100)='adfjdjRFHDjhbkdxSD';
SELECT STUFF(LOWER(@S),1,1,UPPER(LEFT(@S,1)));


Что то не то с этим делом
23 ноя 17, 15:37    [20978266]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
dialog1984,

с таким пониманием процессов стоит поостеречься лезть в БД и что-то там менять.

Серьезно, возьмите паузу, и подтяните теорию. Иначе боком выйдет.
23 ноя 17, 15:37    [20978267]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
dialog1984
iap
DECLARE @S VARCHAR(100)='adfjdjRFHDjhbkdxSD';
SELECT STUFF(LOWER(@S),1,1,UPPER(LEFT(@S,1)));



Что то не то с этим делом
Что не так?
23 ноя 17, 15:39    [20978282]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
dialog1984
Member

Откуда:
Сообщений: 20
982183
dialog1984
Для меня огромная проблема.
У меня даже в голове не укладывается как это делать


Без обид. Очень интересно, а какое у вас образование?
Как сложилась так жизнь, что вам это понадобилось?


Программист.
Только практики почти нет.
Пишу простецкие запросы, такие как вначале написал.
23 ноя 17, 15:40    [20978286]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
dialog1984
Member

Откуда:
Сообщений: 20
iap
dialog1984
пропущено...


Что то не то с этим делом
Что не так?



вот результат выполнени

Сообщение 139, уровень 15, состояние 1, строка 0
Cannot assign a default value to a local variable.
Сообщение 137, уровень 15, состояние 2, строка 2
Must declare the scalar variable "@S".
23 ноя 17, 15:41    [20978293]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
Сервак у него старый

DECLARE @S VARCHAR(100)
SET @S='ПОГРОММИСТ';
SELECT STUFF(LOWER(@S),1,1,UPPER(LEFT(@S,1)));
23 ноя 17, 15:43    [20978304]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
dialog1984
iap
пропущено...
Что не так?



вот результат выполнени

Сообщение 139, уровень 15, состояние 1, строка 0
Cannot assign a default value to a local variable.
Сообщение 137, уровень 15, состояние 2, строка 2
Must declare the scalar variable "@S".
У меня DECLARE @S есть, вообще-то.
Или вы взяли мой пример и прямо так, как есть, в свой запрос скопипастили?
Там, небось, имя поля вместо @S должно быть...
23 ноя 17, 15:44    [20978315]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1364
dialog1984,

Программист по мимо практики должен знать теоретическую базу.
У вас версия сервера ниже 2012.

До этой версии не было синтаксиса declare+assign
23 ноя 17, 15:45    [20978320]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
felix_ff,

SET ZANUDA_MODE ON

до 2008 не было
SET ZANUDA_MODE OFF
23 ноя 17, 15:47    [20978330]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36970
felix_ff
У вас версия сервера ниже 2012.
До этой версии не было синтаксиса declare+assign
C 2008го она как минимум.
23 ноя 17, 15:47    [20978333]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
dialog1984
Member

Откуда:
Сообщений: 20
Cammomile
Сервак у него старый

DECLARE @S VARCHAR(100)
SET @S='ПОГРОММИСТ';
SELECT STUFF(LOWER(@S),1,1,UPPER(LEFT(@S,1)));


Очень смешно
23 ноя 17, 15:48    [20978340]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1364
Гавриленко Сергей Алексеевич,

Виноват 😞 память подводит
23 ноя 17, 15:49    [20978344]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
dialog1984
Member

Откуда:
Сообщений: 20
iap
dialog1984
пропущено...



вот результат выполнени

Сообщение 139, уровень 15, состояние 1, строка 0
Cannot assign a default value to a local variable.
Сообщение 137, уровень 15, состояние 2, строка 2
Must declare the scalar variable "@S".
У меня DECLARE @S есть, вообще-то.
Или вы взяли мой пример и прямо так, как есть, в свой запрос скопипастили?
Там, небось, имя поля вместо @S должно быть...


Ну как бы да :(
23 ноя 17, 15:51    [20978352]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
dialog1984
Cammomile
Сервак у него старый

DECLARE @S VARCHAR(100)
SET @S='ПОГРОММИСТ';
SELECT STUFF(LOWER(@S),1,1,UPPER(LEFT(@S,1)));


Очень смешно


По сообщению у меня было 2 варианта. Предположить, что у тебя 2005й сервак, который не поддерживает данный синтаксис. Или предположить, что ты тупой, и скопипастил неглядя. Я, будучи добрым человеком, предположил первое.

Так мало того, что ты--вариант из второго сценария
автор
Ну как бы да :(
, ты еще и решил посмеяться.

Далеко пойдешь, работяга.
23 ноя 17, 15:54    [20978374]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить