Я создал тип в SQL Server 2008 для передачи данных в хранимую процедуру. Мой SP работает нормально, но как я могу проверять данные, если они существуют в таблице?
(например: проверить Detailid или идентификатор , если существует: обновить их , если не существует: вставить новый)
вот мой SP:как проверить данные, если существует «тип таблицы» в хранимой процедуре
ALTER PROCEDURE [dbo].[Insert_Data]
(
@empinfo myType READONLY
)
AS
BEGIN
SET NOCOUNT ON;
Insert into TableEmp(ID, DetailID, Text)
select id, detailid, text from @empinfo
END
Thnx все
Есть ли проблема при обновлении? причина вставки в порядке, но обновления нет. Thnx –
Зачем в чем проблема? –
+1 Но использование 'MERGE' не позволяет избежать состояния гонки. Нам нужно добавить 'HOLDLOCK', чтобы избежать этой проблемы. Пожалуйста, прочитайте это [статья, написанная Дэном Гузманом] (http://weblogs.sqlteam.com/dang/archive/2009/01/31/UPSERT-Race-Condition-With-MERGE.aspx) –