相关疑难解决方法(0)

检查是否存在行,否则插入

我需要编写一个T-SQL存储过程来更新表中的行.如果该行不存在,请插入它.所有这些步骤都由事务包装.

这是一个预订系统,所以它必须是原子和可靠的.如果交易已提交且预订航班,则必须返回true.

我是T-SQL的新手,不知道如何使用@@rowcount.这是我到现在为止所写的.我在正确的道路上吗?我确信这对你来说很容易.

-- BEGIN TRANSACTION (HOW TO DO?)

UPDATE Bookings
 SET TicketsBooked = TicketsBooked + @TicketsToBook
 WHERE FlightId = @Id AND TicketsMax < (TicketsBooked + @TicketsToBook)

-- Here I need to insert only if the row doesn't exists.
-- If the row exists but the condition TicketsMax is violated, I must not insert 
-- the row and return FALSE

IF @@ROWCOUNT = 0 
BEGIN

 INSERT INTO Bookings ... (omitted)

END

-- END TRANSACTION …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2008

226
推荐指数
5
解决办法
48万
查看次数

SQL中Top和Limit关键字的区别

一个简短的问题.假设我有以下两个查询:

SELECT TOP 2 * FROM Persons;
Run Code Online (Sandbox Code Playgroud)

SELECT * FROM Persons limit 2;
Run Code Online (Sandbox Code Playgroud)

我想知道上述2个查询的执行区别?基本上,我想知道何时应该使用limit关键字以及何时使用top关键字.此外,数据库如何根据上述2个查询返回结果.

sql

61
推荐指数
5
解决办法
4万
查看次数

标签 统计

sql ×2

sql-server ×1

sql-server-2008 ×1

t-sql ×1