Вернуться   Биткоин Форум > Сервисы
13 мая 2017, 8:25:58 AM   # 1
 
 
Сообщения: 1134
Цитировать по имени
цитировать ответ
по умолчанию Re: [Необходимость] SQL Expert (Триггеры)

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Давайте предположим, что у меня есть следующий код:

Код:
-- создать две таблицы
CREATE TABLE TABLE_2 (ID INT NOT NULL IDENTITY (1,1), ProdName УАКСНАК (50))
CREATE TABLE TABLE_1 (ProdName VARCHAR (50), Купленный INT)
ИДТИ

-- создать триггер на "ТАБЛИЦА 2" обновить "ТАБЛИЦА 1"    
CREATE TRIGGER T2Insert
ON TABLE_2
ПОСЛЕ ВСТАВКА
В ВИДЕ
    UPDATE T1
    SET Купил = Купил + 1
    ОТ TABLE_1 T1
    INNER JOIN вставленной я ON T1.ProdName = i.ProdName
    ГДЕ T1.Bought < 100
ИДТИ

-- инициализировать TABLE_1 с некоторыми данными семян
INSERT INTO dbo.TABLE_1 (ProdName, Купленный)
ЗНАЧЕНИЯ ( 'Prod1', 0), ( 'Prod2', 20), ( 'Prod3', 40), ( 'Prod4', 40), ( 'Prod100', 100)

-- вставить новые значения в TABLE_2
INSERT INTO dbo.TABLE_2 (ProdName)
VALUES ( 'Prod1'), ( 'Prod100'), ( 'Prod2'), ( 'Prod4')

-- получить данные для проверки
SELECT * FROM dbo.TABLE_1

Триггер работает отлично. Однако, если вставить что-то вроде этого на TABLE_2:

Код:
INSERT INTO dbo.TABLE_2 (ProdName)
VALUES ( 'Prod1'), ( 'Prod1')

Это только обновляется один раз. в основном SET Купил = Купил + 1 обновления один раз вместо двух / или независимо от числа значений я пытаюсь вставить.

Если вы можете решить эту проблему, дайте мне знать, в резьбе и сколько $ вы ищете
OmegaStarScream сейчас офлайн Пожаловаться на OmegaStarScream   Ответить с цитированием Мультицитирование сообщения от OmegaStarScream Быстрый ответ на сообщение OmegaStarScream


Как заработать Биткоины?
Без вложений. Не майнинг.


13 мая 2017, 9:36:38 AM   # 2
 
 
Сообщения: 280
Цитировать по имени
цитировать ответ
по умолчанию Re: [Необходимость] SQL Expert (Триггеры)

Получил 1806 Биткоинов
Реальная история.





Давайте предположим, что у меня есть следующий код:

Код:
-- создать две таблицы
CREATE TABLE TABLE_2 (ID INT NOT NULL IDENTITY (1,1), ProdName УАКСНАК (50))
CREATE TABLE TABLE_1 (ProdName VARCHAR (50), Купленный INT)
ИДТИ

-- создать триггер на "ТАБЛИЦА 2" обновить "ТАБЛИЦА 1"   
CREATE TRIGGER T2Insert
ON TABLE_2
ПОСЛЕ ВСТАВКА
В ВИДЕ
    UPDATE T1
    SET Купил = Купил + 1
    ОТ TABLE_1 T1
    INNER JOIN вставленной я ON T1.ProdName = i.ProdName
    ГДЕ T1.Bought < 100
ИДТИ

-- инициализировать TABLE_1 с некоторыми данными семян
INSERT INTO dbo.TABLE_1 (ProdName, Купленный)
ЗНАЧЕНИЯ ( 'Prod1', 0), ( 'Prod2', 20), ( 'Prod3', 40), ( 'Prod4', 40), ( 'Prod100', 100)

-- вставить новые значения в TABLE_2
INSERT INTO dbo.TABLE_2 (ProdName)
VALUES ( 'Prod1'), ( 'Prod100'), ( 'Prod2'), ( 'Prod4')

-- получить данные для проверки
SELECT * FROM dbo.TABLE_1

Триггер работает отлично. Однако, если вставить что-то вроде этого на TABLE_2:

Код:
INSERT INTO dbo.TABLE_2 (ProdName)
VALUES ( 'Prod1'), ( 'Prod1')

Это только обновляется один раз. в основном SET Купил = Купил + 1 обновления один раз вместо двух / или независимо от числа значений я пытаюсь вставить.

Если вы можете решить эту проблему, дайте мне знать, в резьбе и сколько $ вы ищете
Я думаю, проблема в том, что, если тот же самый продукт куплен / вставлен более чем 1 раз сразу же, значение купили также увеличивается только на 1. Самым простым решением было бы, позволяя только одну вставку в таблице 2, в то время,
Kencha77 сейчас офлайн Пожаловаться на Kencha77   Ответить с цитированием Мультицитирование сообщения от Kencha77 Быстрый ответ на сообщение Kencha77

13 мая 2017, 10:05:09 AM   # 3
 
 
Сообщения: 1134
Цитировать по имени
цитировать ответ
по умолчанию Re: [Необходимость] SQL Expert (Триггеры)

Я думаю, проблема в том, что, если тот же самый продукт куплен / вставлен более чем 1 раз сразу же, значение купили также увеличивается только на 1. Самым простым решением было бы, позволяя только одну вставку в таблице 2, в то время,

Это не вариант, я готов принять, к сожалению, таблица должна иметь возможность получить несколько ЗАЯВЛЕНИЯ INSERT. Я хочу изменить на курок, чтобы добиться того, что я ищу.
OmegaStarScream сейчас офлайн Пожаловаться на OmegaStarScream   Ответить с цитированием Мультицитирование сообщения от OmegaStarScream Быстрый ответ на сообщение OmegaStarScream

13 мая 2017, 11:21:11 AM   # 4
 
 
Сообщения: 910
Цитировать по имени
цитировать ответ
по умолчанию Re: [Необходимость] SQL Expert (Триггеры)

Существуют ли какие-либо конкретные ошибки, возникающие во время работы на курок?
Я не то, что опыт работы с триггерами, но вы не должны использовать
Код:
ДЛЯ КАЖДОЙ ROW
       НАЧАТЬ
цикл, чтобы он влияет на все строки?
KenR сейчас офлайн Пожаловаться на KenR   Ответить с цитированием Мультицитирование сообщения от KenR Быстрый ответ на сообщение KenR

13 мая 2017, 12:44:59 PM   # 5
 
 
Сообщения: 280
Цитировать по имени
цитировать ответ
по умолчанию Re: [Необходимость] SQL Expert (Триггеры)

Я думаю, проблема в том, что, если тот же самый продукт куплен / вставлен более чем 1 раз сразу же, значение купили также увеличивается только на 1. Самым простым решением было бы, позволяя только одну вставку в таблице 2, в то время,

Это не вариант, я готов принять, к сожалению, таблица должна иметь возможность получить несколько ЗАЯВЛЕНИЯ INSERT. Я хочу изменить на курок, чтобы добиться того, что я ищу.

SET Купил = Купил + COUNT (Inserted.ProdName)
Kencha77 сейчас офлайн Пожаловаться на Kencha77   Ответить с цитированием Мультицитирование сообщения от Kencha77 Быстрый ответ на сообщение Kencha77

13 мая 2017, 1:25:45 PM   # 6
 
 
Сообщения: 1134
Цитировать по имени
цитировать ответ
по умолчанию Re: [Необходимость] SQL Expert (Триггеры)

Существуют ли какие-либо конкретные ошибки, возникающие во время работы на курок?
Я не то, что опыт работы с триггерами, но вы не должны использовать
Код:
ДЛЯ КАЖДОЙ ROW
НАЧАТЬ
цикл, чтобы он влияет на все строки?

Я сказал, что триггер выше работает отлично, нет никаких ошибок. Его просто не делать то, что я надеялся. Для каждой строки не существует на SQL Server, насколько я знаю, и используя время цикла не будет работать, потому что вставка может быть сделано с помощью одного утверждения, но с несколькими значениями.

SET Купил = Купил + COUNT (Inserted.ProdName)

Он не будет работать, так как значения могут изменяться и быть разной, может быть два одинаковых ProdName, 3 из другого источника.


РЕДАКТИРОВАТЬ: Я сумел справиться с этой ситуацией путем создания временной таблицы и хранения данных есть (принимая его от вставлено) с помощью GROUP BY. Я больше не нуждаюсь в этом.
OmegaStarScream сейчас офлайн Пожаловаться на OmegaStarScream   Ответить с цитированием Мультицитирование сообщения от OmegaStarScream Быстрый ответ на сообщение OmegaStarScream



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW