Sql 插入和更新存储过程
我不熟悉存储过程和SQL Server,目前正在使用SQL Server 2016。我正在尝试创建一个存储过程,允许我为特定帐户设置昵称。根据他们传递的MemberAccount昵称ID,我想知道是否更新现有行,或者如果为null,则添加新行。我不知道该怎么做Sql 插入和更新存储过程,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,我不熟悉存储过程和SQL Server,目前正在使用SQL Server 2016。我正在尝试创建一个存储过程,允许我为特定帐户设置昵称。根据他们传递的MemberAccount昵称ID,我想知道是否更新现有行,或者如果为null,则添加新行。我不知道该怎么做 USE [MemberRelations] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[uspSetAccountNicknam
USE [MemberRelations]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[uspSetAccountNickname]
AS
BEGIN
SET NOCOUNT ON;
DECLARE @CrmID varchar(20),
@AccountNumber varchar(20),
@Nickname varchar(50),
@CreatedDate datetime,
@updatedDate datetime
SELECT
if (@MemberAccountNicknameId is NULL)
INSERT INTO MemberAccountNickname
ELSE
UPDATE MemberAccountNickname
WHERE MemberAccountNicknameId = @MemberAccountNicknameId
END
MemberAccount昵称ID是我在表中称为主键的内容。希望这有帮助,让我知道,如果我需要包括任何其他内容
谢谢,看看SQL Server中的操作,他们有一个您想要的示例。研究:跳过过程用法,只需编写一个使用变量的简单tsql脚本,它在哪里?您没有在任何地方声明它来保存此ID列的预定义值。然后检查表中是否存在,如果找到则更新或插入。这是基本的tsql,在编写更复杂的东西之前,您需要掌握它。试着跑之前先学会走路。这里面也有很多无效的语法。正如@SMor所说的,首先尝试让它作为tsql工作。这可能会使错误更加明显。