我想知道如何使用一个语句在SQL Server中使用UPSERT或换句话说UPDATE if records exists Else enter new record操作?
这个例子显示了在Oracle中实现这一目标的方式在这里
,但它使用Dual表,它这不存在SQL Server.
那么,任何SQL Server替代品(没有存储过程)好吗?
好.我在早些时候得到了很多帮助,使用SQL后端来处理一个简单的...只是不适合我:( ...我工作的小办公室的时钟解决方案,所以我回来了!
我目前正在使用的表格由6列组成:
我虽然IF NOT EXISTS INSERT ELSE UPDATE从上一个问题中找到了我的陈述,但现在我试图在存储过程中使用它,而不是一个简单的查询窗口,但没有成功.
基本上用户输入是一个明智的选择.但是,如果用户没有时钟,但他们在午餐时间退出,则语句需要创建行而不是更新现有行.好的,这是我的存储过程:
ALTER PROCEDURE dbo.BreakOut
(
@userName varchar(50)
)
AS
IF EXISTS (SELECT * FROM Clock WHERE clockDate = GETDATE() AND userName = @userName)
BEGIN
UPDATE Clock SET breakOut = GETDATE()
WHERE clockDate = GETDATE() AND userName = @userName
END
ELSE
BEGIN
INSERT INTO Clock (clockDate, userName, breakOut)
VALUES (GETDATE(), @userName, GETDATE())
END …Run Code Online (Sandbox Code Playgroud) 我试图以编程方式在我的表中输入值.
我不能直接选择@variables.我必须使用关键字值.
如何在insert插入中使用Values时创建where子句.
我试图避免重复
DECLARE @MyID INT
DECLARE @Phone varchar(10)
DECLARE @MyDATE DateTime
DECLARE @Agent as varchar(50)
DECLARE @Charge as varchar(50)
DECLARE @Vendor as varchar(50)
SET @MyID = 215199999
SET @Phone = '9999999999'
SET @MyDATE = '2010-12-04 11:56:12.000'
SET @Agent = 'fbrown'
SET @Charge = 'NO'
SET @Vendor = 'NO'
INSERT INTO [MyDB].[dbo].[Accounts]
(MyID,Phone,MyDate,Agent,Charge,Vendor)
VALUES (
@MyID
,@Phone
,@MyDATE
,@Agent
,@Charge
,@Vendor
) WHERE MyID NOT IN (@MyID)
Run Code Online (Sandbox Code Playgroud)