Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / НичегоНеПонимаю / 6 сообщений из 6, страница 1 из 1
16.09.2002, 16:50:03
    #32050794
Mix
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
16.09.2002, 16:54:04
    #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
16.09.2002, 16:54:35
    #32050798
snake
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
НичегоНеПонимаю
Ругается на :
Код: plaintext
SELECT ПолученоПередано.КодПоставщика, @SaleID = ПолученоПередано.КодПолученоПередано

Может забыл переменную перед ПолученоПередано.КодПоставщика написать, вообщето там по англицки все написано...:)
...
Рейтинг: 0 / 0
16.09.2002, 16:57:19
    #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
16.09.2002, 16:59:37
    #32050802
lvv
lvv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
НичегоНеПонимаю
Вот здесь посмотри внимательно, и 5 строк ниже

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


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


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