powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Для процедуры в качестве параметра User-Defines Table Types
19 сообщений из 44, страница 2 из 2
Для процедуры в качестве параметра User-Defines Table Types
    #38212746
beaver06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич,

по моей. А разве это не так?
Если вставку делать по одной строке, то и в триггере в таблице inserted всегда будет одна строка. Это не так?
...
Рейтинг: 0 / 0
Для процедуры в качестве параметра User-Defines Table Types
    #38212749
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beaver06Если вставку делать по одной строке, то и в триггере в таблице inserted всегда будет одна строка. Это не так?
А если вставка не по одной строке, то тогда в таблице inserted все равно будет одна запись, да ?
...
Рейтинг: 0 / 0
Для процедуры в качестве параметра User-Defines Table Types
    #38212750
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beaver06Гавриленко Сергей Алексеевич,

по моей. А разве это не так?
Если вставку делать по одной строке, то и в триггере в таблице inserted всегда будет одна строка. Это не так?А как вы запретили делать вставку более, чем по одной строке за раз?
...
Рейтинг: 0 / 0
Для процедуры в качестве параметра User-Defines Table Types
    #38212751
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beaver06invm,

а разве в inserted может быть несколько строк? по идее должна быть однаМожет быть много, может вообще не быть строк.
...
Рейтинг: 0 / 0
Для процедуры в качестве параметра User-Defines Table Types
    #38212754
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beaver06Гавриленко Сергей Алексеевич,

по моей. А разве это не так?
Если вставку делать по одной строке, то и в триггере в таблице inserted всегда будет одна строка. Это не так?Почему это я не могу вставить один миллион строк одним INSERTом?
...
Рейтинг: 0 / 0
Для процедуры в качестве параметра User-Defines Table Types
    #38212768
beaver06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня по бизнес логике вставка по одной строке. В таком случае в inserted может быть больше одной строки?
...
Рейтинг: 0 / 0
Для процедуры в качестве параметра User-Defines Table Types
    #38212771
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beaver06у меня по бизнес логике вставка по одной строке.
Это вы про ваше клиентское ПО ?
Или про команду insert ?

beaver06В таком случае в inserted может быть больше одной строки?
Когда добавляется больше одной строки
...
Рейтинг: 0 / 0
Для процедуры в качестве параметра User-Defines Table Types
    #38212779
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beaver06у меня по бизнес логике вставка по одной строке. В таком случае в inserted может быть больше одной строки?Что Вам мешает представить себе, что строк много?
Это best practice!
...
Рейтинг: 0 / 0
Для процедуры в качестве параметра User-Defines Table Types
    #38212797
beaver06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При такой вставке может быть в таблице inserted больше одной строки?

ALTER PROCEDURE [dbo].[CreateMessage]

@ID uniqueidentifier,
@MessageType nchar(6),
@StoreID nvarchar(9),
@XMLData xml,
@BinaryDataID uniqueidentifier
AS
BEGIN
SET NOCOUNT ON;

INSERT INTO [dbo].[MessageSend]
([ID]
,[MessageType]
,[StoreID]
,[CreateDate]
,[CreateUTCDate]
,[XMLData]
,[BinaryDataID])
VALUES
(@ID
,@MessageType
,@StoreID
,GETDATE()
,GETUTCDATE()
,@XMLData
,@BinaryDataID)
...
Рейтинг: 0 / 0
Для процедуры в качестве параметра User-Defines Table Types
    #38212809
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beaver06При такой вставке может быть в таблице inserted больше одной строки?А как вы гарантировали, что кроме этой вставки завтра или послезавтра не появится еще какая-нибудь, или кто-то вообще возьмет и напрямую не зальет в таблицу пару миллионов записей? Зачем писать кривой триггер, который сегодня при некоторых условиях работает, а завтра сломается или чепуху делать будет? Чтобы заказчик почаще обращался?
...
Рейтинг: 0 / 0
Для процедуры в качестве параметра User-Defines Table Types
    #38212815
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beaver06При такой вставке может быть в таблице inserted больше одной строки?
Еще один не читатель.
...
Рейтинг: 0 / 0
Для процедуры в качестве параметра User-Defines Table Types
    #38212850
beaver06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iap,

как я понял вы предлагаете представить, что в таблице inserted много записей, и пробежаться по циклу и запустить процедуру для каждой строки?
...
Рейтинг: 0 / 0
Для процедуры в качестве параметра User-Defines Table Types
    #38212854
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beaver06iap,

как я понял вы предлагаете представить, что в таблице inserted много записей, и пробежаться по циклу и запустить процедуру для каждой строки?Ну и извратили Вы мои слова...

Ни в коем случае!
Работать с данными в таблицах deleted и inserted в предположении, что в них сколько угодно записей.
С помощью запросов, которые в SQL обычно предназначены для операций со множествами,
которые представлены таблицами.

Рекомендую на время забыть про циклы, курсоры и т.п.
...
Рейтинг: 0 / 0
Для процедуры в качестве параметра User-Defines Table Types
    #38212861
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beaver06,

вместо Вас по циклу должен бегать сервер.
Достаточно лишь послать ему запрос, в котором сказано, что Вы хотите получить.
Как получить - пусть сервер решает сам!
...
Рейтинг: 0 / 0
Для процедуры в качестве параметра User-Defines Table Types
    #38212875
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя, если действительно надо вызвать процедуру для каждой строки,
то да, придётся передавать ей копию inserted или создавать курсор+цикл, что крайне нежелательно.

Лучше всего рассмотреть возможность обойтись в триггере без вызова процедуры.
Даже копирование сотни-другой тысяч записей - это уже заметное торможение триггера.
...
Рейтинг: 0 / 0
Для процедуры в качестве параметра User-Defines Table Types
    #38212903
beaver06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iap,

дело в том, что по бизнес логики данной задачи вставка всегда будет одна.
Вставки будут происходить достаточно редко.
...
Рейтинг: 0 / 0
Для процедуры в качестве параметра User-Defines Table Types
    #38212922
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beaver06дело в том, что по бизнес логики данной задачи вставка всегда будет одна.
Вставки будут происходить достаточно редко.
Поэтому создание говнокода разрешаю.
Печать, дата, подпись.
...
Рейтинг: 0 / 0
Для процедуры в качестве параметра User-Defines Table Types
    #38212939
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beaver06, тогда укажите хотя бы в начале кода IF @@ROWCOUNT!=1 ROLLBACK TRANSACTION ELSE BEGIN ... END
какая-никакая, а подстраховка
...
Рейтинг: 0 / 0
Для процедуры в качестве параметра User-Defines Table Types
    #38213021
beaver06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cygapb-007,

спасибо за совет
...
Рейтинг: 0 / 0
19 сообщений из 44, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Для процедуры в качестве параметра User-Defines Table Types
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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