更新并插入存储过程

Abh*_*ria 4 sql t-sql sql-server stored-procedures

我想创建一个存储过程,对列执行插入或更新操作,如果该列不包含数据库中已存在的值,它应允许在COUNT(字段)= 0时插入或在COUNT(字段)= 0时更新或1我应该知道是否执行了这些操作.请使用COUNT不存在来解决我的问题,因为这不适用于UPDATE.

我在ASP.net工作 - 我有一个表的两列,需要保持唯一,而不使用唯一约束.所以我想要一个这样的程序:

create proc usp_checkall @field1 varchar(20), 
                         @field2 varchar(20), 
                         @ID int, 
                         @count int output 
Run Code Online (Sandbox Code Playgroud)

现在您的查询是基于@id更新/插入@ field1&@ field2

Dam*_*vic 8

如果您碰巧拥有SQL Server 2008,您还可以尝试:

MERGE dbo.SomeTable AS target
    USING (SELECT @ID, @Field_1, @Field_2) AS source (ID, Field_1, Field_2)
        ON (target.ID = source.ID)
    WHEN MATCHED THEN 
        UPDATE SET Field_1 = source.Field_1, Field_2 = source.Field_2
    WHEN NOT MATCHED THEN   
        INSERT (ID, Field_1, Field_2)
        VALUES (source.ID, source.Field_1, source.Field_2)
Run Code Online (Sandbox Code Playgroud)