powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / НичегоНеПонимаю
6 сообщений из 6, страница 1 из 1
НичегоНеПонимаю
    #32050794
Фотография Mix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
CREATE TRIGGER updTable_ПроданоЗаМесяц
ON dbo.ПроданоЗаМесяц
FOR UPDATE
AS

DECLARE @CardID int, @BuyID int, @SaleID int, @BuyerID int, @NameOfAccount varchar ( 255 ), @ 1  int, @ 2  int, @ 3  int, @ 4  int, @ 5  int, @ 6  int, @ 7  int, @ 8  int, @ 9  int, @ 10  int,
@ 11  int, @ 12  int, @ 13  int, @ 14  int, @ 15  int, @ 16  int, @ 17  int, @ 18  int, @ 19  int, @ 20  int, @ 21  int, @ 22  int, @ 23  int, @ 24  int, @ 25  int, @ 26  int, @ 27  int, @ 28  int, @ 29  int, @ 30  int, @ 31  int

SET NOCOUNT ON

	SELECT @BuyID = НомерУниверсальногоЛиста, @CardID = КодТовара, @ 1  = [ 1 ],  @ 2  = [ 2 ],  @ 3  = [ 3 ],  @ 4  = [ 4 ],  @ 5  = [ 5 ],  @ 6  = [ 6 ],  @ 7  = [ 7 ],  @ 8  = [ 8 ],  @ 9  = [ 9 ],  @ 10  = [ 10 ], 
	@ 11  = [ 11 ],  @ 12  = [ 12 ],  @ 13  = [ 13 ],  @ 14  = [ 14 ],  @ 15  = [ 15 ],  @ 16  = [ 16 ],  @ 17  = [ 17 ],  @ 18  = [ 18 ],  @ 19  = [ 19 ],  @ 20  = [ 20 ], 
	@ 21  = [ 21 ],  @ 22  = [ 22 ],  @ 23  = [ 23 ],  @ 24  = [ 24 ],  @ 25  = [ 25 ],  @ 26  = [ 26 ],  @ 27  = [ 27 ],  @ 28  = [ 28 ],  @ 29  = [ 29 ],  @ 30  = [ 30 ],   @ 31  = [ 31 ]
	FROM inserted

	 /*найдем запись  -зак*/ 
	SELECT ПроданоЗаМесяц.НомерУниверсальногоЛиста, @NameOfAccount = ПолученоПередано.НомерНакладной, 
	@BuyerID = ПолученоПередано.КодПолучателя 
	FROM ПолученоПередано INNER JOIN ПроданоЗаМесяц ON ПолученоПередано.КодПолученоПередано = ПроданоЗаМесяц.НомерУниверсальногоЛиста 
	WHERE (((ПроданоЗаМесяц.НомерУниверсальногоЛиста)=@BuyID))

IF (SELECT НомерНакладной FROM ПолученоПередано WHERE (((ПроданоЗаМесяц.НомерУниверсальногоЛиста) = @BuyID)))  LIKE '*зак'
 /*если условие выполнено (изменяемый учетный лист - это лист закупок), то начинаем выполнять блок инструкций*/ 

BEGIN
 /*поехали :)*/ 

	 /*нужно найти торговую запись этого офиса и получить ее ID*/ 
	SELECT ПолученоПередано.КодПоставщика, @SaleID = ПолученоПередано.КодПолученоПередано
	FROM ПолученоПередано
	WHERE (((ПолученоПередано.КодПоставщика)=@BuyerID))

	 /*обновляем найденную запись этого офиса, но торговую*/ 
	UPDATE dbo.ПроданоЗаМесяц
	SET
	dbo.ПроданоЗаМесяц.[ 1 ]=@ 1 , dbo.ПроданоЗаМесяц.[ 2 ]=@ 2 , dbo.ПроданоЗаМесяц.[ 3 ]=@ 3 , dbo.ПроданоЗаМесяц.[ 4 ]=@ 4 , 
	dbo.ПроданоЗаМесяц.[ 5 ]=@ 5 , dbo.ПроданоЗаМесяц.[ 6 ]=@ 6 , dbo.ПроданоЗаМесяц.[ 7 ]=@ 7 , dbo.ПроданоЗаМесяц.[ 8 ]=@ 8 , 
	dbo.ПроданоЗаМесяц.[ 9 ]=@ 9 , dbo.ПроданоЗаМесяц.[ 10 ]=@ 10 , dbo.ПроданоЗаМесяц.[ 11 ]=@ 11 , dbo.ПроданоЗаМесяц.[ 12 ]=@ 12 , 
	dbo.ПроданоЗаМесяц.[ 13 ]=@ 13 , dbo.ПроданоЗаМесяц.[ 14 ]=@ 14 , dbo.ПроданоЗаМесяц.[ 15 ]=@ 15 , dbo.ПроданоЗаМесяц.[ 16 ]=@ 16 , 
	dbo.ПроданоЗаМесяц.[ 17 ]=@ 17 , dbo.ПроданоЗаМесяц.[ 18 ]=@ 18 , dbo.ПроданоЗаМесяц.[ 19 ]=@ 19 , dbo.ПроданоЗаМесяц.[ 20 ]=@ 20 , 
	dbo.ПроданоЗаМесяц.[ 21 ]=@ 21 , dbo.ПроданоЗаМесяц.[ 22 ]=@ 22 , dbo.ПроданоЗаМесяц.[ 23 ]=@ 23 , dbo.ПроданоЗаМесяц.[ 24 ]=@ 24 , 
	dbo.ПроданоЗаМесяц.[ 25 ]=@ 25 , dbo.ПроданоЗаМесяц.[ 26 ]=@ 26 , dbo.ПроданоЗаМесяц.[ 27 ]=@ 27 , dbo.ПроданоЗаМесяц.[ 28 ]=@ 28 , 
	dbo.ПроданоЗаМесяц.[ 29 ]=@ 29 , dbo.ПроданоЗаМесяц.[ 30 ]=@ 30 , dbo.ПроданоЗаМесяц.[ 31 ]=@ 31  
	WHERE (((dbo.ПроданоЗаМесяц.КодТовара)=@CardID) AND ((dbo.ПроданоЗаМесяц.НомерУниверсальногоЛиста)=@SaleID))

 /*конец блока*/ 
END


в чем трабл? ругается:

Error 141: A SELECT statement that assigns a value to a variable must not be combined with data-retrieval operations.
A SELECT statement that assigns a value to a variable must not be combined with data-retrieval operations.

битых полтора часа ищу ошибку :(
может вам удастся? оччень надеюсь!
есть идея что нельза называть переменные вроде @1, но в bol-е не нашел ответа

P.S. заранее извиняюсь, если где криво накодил, я пока еще не очень большой спец :)
...
Рейтинг: 0 / 0
НичегоНеПонимаю
    #32050796
Фотография VVG_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так наверное:

Код: 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.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
CREATE TRIGGER updTable_ПроданоЗаМесяц
ON dbo.ПроданоЗаМесяц
FOR UPDATE
AS

DECLARE @CardID int, @BuyID int, @SaleID int, @BuyerID int, @NameOfAccount varchar ( 255 ), @ 1  int, @ 2  int, @ 3  int, @ 4  int, @ 5  int, @ 6  int, @ 7  int, @ 8  int, @ 9  int, @ 10  int,
@ 11  int, @ 12  int, @ 13  int, @ 14  int, @ 15  int, @ 16  int, @ 17  int, @ 18  int, @ 19  int, @ 20  int, @ 21  int, @ 22  int, @ 23  int, @ 24  int, @ 25  int, @ 26  int, @ 27  int, @ 28  int, @ 29  int, @ 30  int, @ 31  int

SET NOCOUNT ON

	SELECT @BuyID = НомерУниверсальногоЛиста, @CardID = КодТовара, @ 1  = [ 1 ],  @ 2  = [ 2 ],  @ 3  = [ 3 ],  @ 4  = [ 4 ],  @ 5  = [ 5 ],  @ 6  = [ 6 ],  @ 7  = [ 7 ],  @ 8  = [ 8 ],  @ 9  = [ 9 ],  @ 10  = [ 10 ], 
	@ 11  = [ 11 ],  @ 12  = [ 12 ],  @ 13  = [ 13 ],  @ 14  = [ 14 ],  @ 15  = [ 15 ],  @ 16  = [ 16 ],  @ 17  = [ 17 ],  @ 18  = [ 18 ],  @ 19  = [ 19 ],  @ 20  = [ 20 ], 
	@ 21  = [ 21 ],  @ 22  = [ 22 ],  @ 23  = [ 23 ],  @ 24  = [ 24 ],  @ 25  = [ 25 ],  @ 26  = [ 26 ],  @ 27  = [ 27 ],  @ 28  = [ 28 ],  @ 29  = [ 29 ],  @ 30  = [ 30 ],   @ 31  = [ 31 ]
	FROM inserted

	 /*найдем запись  -зак*/ 
	SELECT @NameOfAccount = ПолученоПередано.НомерНакладной, 
	@BuyerID = ПолученоПередано.КодПолучателя 
	FROM ПолученоПередано INNER JOIN ПроданоЗаМесяц ON ПолученоПередано.КодПолученоПередано = ПроданоЗаМесяц.НомерУниверсальногоЛиста 
	WHERE (((ПроданоЗаМесяц.НомерУниверсальногоЛиста)=@BuyID))

IF (SELECT НомерНакладной FROM ПолученоПередано WHERE (((ПроданоЗаМесяц.НомерУниверсальногоЛиста) = @BuyID)))  LIKE '*зак'
 /*если условие выполнено (изменяемый учетный лист - это лист закупок), то начинаем выполнять блок инструкций*/ 

BEGIN
 /*поехали :)*/ 

	 /*нужно найти торговую запись этого офиса и получить ее ID*/ 
	SELECT @SaleID = ПолученоПередано.КодПолученоПередано
	FROM ПолученоПередано
	WHERE (((ПолученоПередано.КодПоставщика)=@BuyerID))

	 /*обновляем найденную запись этого офиса, но торговую*/ 
	UPDATE dbo.ПроданоЗаМесяц
	SET
	dbo.ПроданоЗаМесяц.[ 1 ]=@ 1 , dbo.ПроданоЗаМесяц.[ 2 ]=@ 2 , dbo.ПроданоЗаМесяц.[ 3 ]=@ 3 , dbo.ПроданоЗаМесяц.[ 4 ]=@ 4 , 
	dbo.ПроданоЗаМесяц.[ 5 ]=@ 5 , dbo.ПроданоЗаМесяц.[ 6 ]=@ 6 , dbo.ПроданоЗаМесяц.[ 7 ]=@ 7 , dbo.ПроданоЗаМесяц.[ 8 ]=@ 8 , 
	dbo.ПроданоЗаМесяц.[ 9 ]=@ 9 , dbo.ПроданоЗаМесяц.[ 10 ]=@ 10 , dbo.ПроданоЗаМесяц.[ 11 ]=@ 11 , dbo.ПроданоЗаМесяц.[ 12 ]=@ 12 , 
	dbo.ПроданоЗаМесяц.[ 13 ]=@ 13 , dbo.ПроданоЗаМесяц.[ 14 ]=@ 14 , dbo.ПроданоЗаМесяц.[ 15 ]=@ 15 , dbo.ПроданоЗаМесяц.[ 16 ]=@ 16 , 
	dbo.ПроданоЗаМесяц.[ 17 ]=@ 17 , dbo.ПроданоЗаМесяц.[ 18 ]=@ 18 , dbo.ПроданоЗаМесяц.[ 19 ]=@ 19 , dbo.ПроданоЗаМесяц.[ 20 ]=@ 20 , 
	dbo.ПроданоЗаМесяц.[ 21 ]=@ 21 , dbo.ПроданоЗаМесяц.[ 22 ]=@ 22 , dbo.ПроданоЗаМесяц.[ 23 ]=@ 23 , dbo.ПроданоЗаМесяц.[ 24 ]=@ 24 , 
	dbo.ПроданоЗаМесяц.[ 25 ]=@ 25 , dbo.ПроданоЗаМесяц.[ 26 ]=@ 26 , dbo.ПроданоЗаМесяц.[ 27 ]=@ 27 , dbo.ПроданоЗаМесяц.[ 28 ]=@ 28 , 
	dbo.ПроданоЗаМесяц.[ 29 ]=@ 29 , dbo.ПроданоЗаМесяц.[ 30 ]=@ 30 , dbo.ПроданоЗаМесяц.[ 31 ]=@ 31  
	WHERE (((dbo.ПроданоЗаМесяц.КодТовара)=@CardID) AND ((dbo.ПроданоЗаМесяц.НомерУниверсальногоЛиста)=@SaleID))

 /*конец блока*/ 
END
...
Рейтинг: 0 / 0
НичегоНеПонимаю
    #32050798
Фотография snake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ругается на :
Код: plaintext
SELECT ПолученоПередано.КодПоставщика, @SaleID = ПолученоПередано.КодПолученоПередано

Может забыл переменную перед ПолученоПередано.КодПоставщика написать, вообщето там по англицки все написано...:)
...
Рейтинг: 0 / 0
НичегоНеПонимаю
    #32050801
Фотография snake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я имел ввиду здесь
Код: plaintext
1.
Error  141 : A SELECT statement that assigns a value to a variable must not be combined with data-retrieval operations. 
A SELECT statement that assigns a value to a variable must not be combined with data-retrieval operations. 
...
Рейтинг: 0 / 0
НичегоНеПонимаю
    #32050802
lvv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
lvv
Гость
Вот здесь посмотри внимательно, и 5 строк ниже

Код: plaintext
1.
2.
3.
4.
 /*найдем запись  -зак*/ 
	SELECT ПроданоЗаМесяц.НомерУниверсальногоЛиста, @NameOfAccount = ПолученоПередано.НомерНакладной, 
	@BuyerID = ПолученоПередано.КодПолучателя 
	FROM ПолученоПередано INNER JOIN ПроданоЗаМесяц ON ПолученоПередано.КодПолученоПередано = ПроданоЗаМесяц.НомерУниверсальногоЛиста 
	WHERE (((ПроданоЗаМесяц.НомерУниверсальногоЛиста)=@BuyID))


ПроданоЗаМесяц.НомерУниверсальногоЛиста
a надо @f=ПроданоЗаМесяц.НомерУниверсальногоЛиста
...
Рейтинг: 0 / 0
НичегоНеПонимаю
    #32050845
Фотография Mix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо Вам огромное! все получилось.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / НичегоНеПонимаю
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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