有没有可能在不使用任何WHERE
条件和游标的情况下,从SQL Server
中的表中删除“第一条”记录?
发布于 2009-04-09 10:48:01
取决于您的DBMS
-- MYSql:
DELETE FROM table LIMIT 1;
-- Postgres:
DELETE FROM table LIMIT 1;
-- MSSql:
DELETE TOP(1) FROM table;
-- Oracle:
DELETE FROM table WHERE ROWNUM = 1;
发布于 2009-04-09 10:42:58
不,AFAIK,这是不可能的便携式。
没有定义的“第一条”记录--在不同的SQL引擎上,"SELECT * FROM table
“很可能每次都会以不同的顺序返回结果。
发布于 2009-04-09 10:45:05
定义“第一”?如果表有主键,则按主键排序,可按主键删除:
DECLARE @TABLE TABLE
(
ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
Data NVARCHAR(50) NOT NULL
)
INSERT INTO @TABLE(Data)
SELECT 'Hello' UNION
SELECT 'World'
SET ROWCOUNT 1
DELETE FROM @TABLE
SET ROWCOUNT 0
SELECT * FROM @TABLE
如果表没有主键,则不能保证排序...
https://stackoverflow.com/questions/733668
复制相似问题