|
Для процедуры в качестве параметра User-Defines Table Types
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич, по моей. А разве это не так? Если вставку делать по одной строке, то и в триггере в таблице inserted всегда будет одна строка. Это не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 13:24 |
|
Для процедуры в качестве параметра User-Defines Table Types
|
|||
---|---|---|---|
#18+
beaver06Если вставку делать по одной строке, то и в триггере в таблице inserted всегда будет одна строка. Это не так? А если вставка не по одной строке, то тогда в таблице inserted все равно будет одна запись, да ? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 13:25 |
|
Для процедуры в качестве параметра User-Defines Table Types
|
|||
---|---|---|---|
#18+
beaver06Гавриленко Сергей Алексеевич, по моей. А разве это не так? Если вставку делать по одной строке, то и в триггере в таблице inserted всегда будет одна строка. Это не так?А как вы запретили делать вставку более, чем по одной строке за раз? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 13:25 |
|
Для процедуры в качестве параметра User-Defines Table Types
|
|||
---|---|---|---|
#18+
beaver06invm, а разве в inserted может быть несколько строк? по идее должна быть однаМожет быть много, может вообще не быть строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 13:25 |
|
Для процедуры в качестве параметра User-Defines Table Types
|
|||
---|---|---|---|
#18+
beaver06Гавриленко Сергей Алексеевич, по моей. А разве это не так? Если вставку делать по одной строке, то и в триггере в таблице inserted всегда будет одна строка. Это не так?Почему это я не могу вставить один миллион строк одним INSERTом? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 13:25 |
|
Для процедуры в качестве параметра User-Defines Table Types
|
|||
---|---|---|---|
#18+
у меня по бизнес логике вставка по одной строке. В таком случае в inserted может быть больше одной строки? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 13:28 |
|
Для процедуры в качестве параметра User-Defines Table Types
|
|||
---|---|---|---|
#18+
beaver06у меня по бизнес логике вставка по одной строке. Это вы про ваше клиентское ПО ? Или про команду insert ? beaver06В таком случае в inserted может быть больше одной строки? Когда добавляется больше одной строки ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 13:30 |
|
Для процедуры в качестве параметра User-Defines Table Types
|
|||
---|---|---|---|
#18+
beaver06у меня по бизнес логике вставка по одной строке. В таком случае в inserted может быть больше одной строки?Что Вам мешает представить себе, что строк много? Это best practice! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 13:32 |
|
Для процедуры в качестве параметра User-Defines Table Types
|
|||
---|---|---|---|
#18+
При такой вставке может быть в таблице 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) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 13:38 |
|
Для процедуры в качестве параметра User-Defines Table Types
|
|||
---|---|---|---|
#18+
beaver06При такой вставке может быть в таблице inserted больше одной строки?А как вы гарантировали, что кроме этой вставки завтра или послезавтра не появится еще какая-нибудь, или кто-то вообще возьмет и напрямую не зальет в таблицу пару миллионов записей? Зачем писать кривой триггер, который сегодня при некоторых условиях работает, а завтра сломается или чепуху делать будет? Чтобы заказчик почаще обращался? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 13:41 |
|
Для процедуры в качестве параметра User-Defines Table Types
|
|||
---|---|---|---|
#18+
beaver06При такой вставке может быть в таблице inserted больше одной строки? Еще один не читатель. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 13:44 |
|
Для процедуры в качестве параметра User-Defines Table Types
|
|||
---|---|---|---|
#18+
iap, как я понял вы предлагаете представить, что в таблице inserted много записей, и пробежаться по циклу и запустить процедуру для каждой строки? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 13:56 |
|
Для процедуры в качестве параметра User-Defines Table Types
|
|||
---|---|---|---|
#18+
beaver06iap, как я понял вы предлагаете представить, что в таблице inserted много записей, и пробежаться по циклу и запустить процедуру для каждой строки?Ну и извратили Вы мои слова... Ни в коем случае! Работать с данными в таблицах deleted и inserted в предположении, что в них сколько угодно записей. С помощью запросов, которые в SQL обычно предназначены для операций со множествами, которые представлены таблицами. Рекомендую на время забыть про циклы, курсоры и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 14:00 |
|
Для процедуры в качестве параметра User-Defines Table Types
|
|||
---|---|---|---|
#18+
beaver06, вместо Вас по циклу должен бегать сервер. Достаточно лишь послать ему запрос, в котором сказано, что Вы хотите получить. Как получить - пусть сервер решает сам! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 14:01 |
|
Для процедуры в качестве параметра User-Defines Table Types
|
|||
---|---|---|---|
#18+
Хотя, если действительно надо вызвать процедуру для каждой строки, то да, придётся передавать ей копию inserted или создавать курсор+цикл, что крайне нежелательно. Лучше всего рассмотреть возможность обойтись в триггере без вызова процедуры. Даже копирование сотни-другой тысяч записей - это уже заметное торможение триггера. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 14:10 |
|
Для процедуры в качестве параметра User-Defines Table Types
|
|||
---|---|---|---|
#18+
iap, дело в том, что по бизнес логики данной задачи вставка всегда будет одна. Вставки будут происходить достаточно редко. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 14:23 |
|
Для процедуры в качестве параметра User-Defines Table Types
|
|||
---|---|---|---|
#18+
beaver06дело в том, что по бизнес логики данной задачи вставка всегда будет одна. Вставки будут происходить достаточно редко. Поэтому создание говнокода разрешаю. Печать, дата, подпись. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 14:32 |
|
Для процедуры в качестве параметра User-Defines Table Types
|
|||
---|---|---|---|
#18+
beaver06, тогда укажите хотя бы в начале кода IF @@ROWCOUNT!=1 ROLLBACK TRANSACTION ELSE BEGIN ... END какая-никакая, а подстраховка ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 14:40 |
|
|
start [/forum/topic.php?fid=46&gotonew=1&tid=1707588]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
13ms |
get first new msg: |
8ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 246ms |
total: | 410ms |
0 / 0 |