首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在一个过程中执行插入和更新操作

在一个过程中执行插入和更新操作
EN

Stack Overflow用户
提问于 2015-07-29 06:21:05
回答 3查看 97关注 0票数 2

我在数据库中有一个表国家,其中包含以下字段

  • CountryId
  • CountryName

现在,我必须编写一个过程,它将首先检查@CountryName名称是否存在。如果它已经存在,它应该更新该行。如果它不存在它应该执行插入操作..。

EN

回答 3

Stack Overflow用户

发布于 2015-07-29 08:46:00

我想下面的脚本会对你有帮助。

代码语言:javascript
运行
复制
CREATE PROCEDURE ProcedureName
@CountryName nvarchar(100),
@CountryID int

AS
BEGIN

IF EXISTS (SELECT 1 FROM dbo.Country WHERE CountryName = @CountryName)
BEGIN
    --UPDATE
END

ELSE
BEGIN
    --INSERT
END

END

您还可以使用SQL find引用这里的merge关键字执行上述代码。

票数 2
EN

Stack Overflow用户

发布于 2015-07-29 08:48:25

代码语言:javascript
运行
复制
Create Proc [ProcedureName]
@CountryName nvarchar(100)
As
Begin
Declare @Count int
Set @Count = (Select count(CountryId) from Country where CountryName = @CountryName)
if @Count > 0
Begin
-- update 
End
else
begin
-- insert
end

End
票数 2
EN

Stack Overflow用户

发布于 2015-07-29 09:13:03

如果使用的是Server 2005(或更高版本),请考虑使用MERGE语句。这里合并的文档。

代码语言:javascript
运行
复制
merge [country] as target
using (select @CountryID, @CountryName) as source(id, name)
on (target.Countryid = source.id)
when matched then
    update set CountryName = @CountryName
when not matched then
    insert (CountryId, CountryName) values (source.id, source.name);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31692652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档