小编Ben*_* Z.的帖子

子查询返回了 1 个以上的值

在我的数据库中,我有两个表:projectscomp_types. 创建新项目时,会触发一个触发器,该触发器会在projects表中的列中插入一个串联值。

一个完全工作的SQL Fiddle
请运行它,你会看到,它有效。

但是,当我尝试在 SQL Server 中运行它时,我收到以下错误:

子查询返回了 1 个以上的值。当子查询跟随 =、!=、<、<=、>、>= 或当子查询用作表达式时,这是不允许的。

截图:http : //i.stack.imgur.com/38rKV.jpg

SQL Server 中的所有表都是新鲜的,没有数据(就像小提琴一样)。
我究竟做错了什么?

trigger sql-server

4
推荐指数
1
解决办法
2506
查看次数

删除特定的重复项(除最新之外的所有)

删除重复行时,使用教程中的以下查询,我将如何强制删除找到的哪些重复行?

DELETE FROM dbo.ATTENDANCE 
    WHERE AUTOID NOT IN (SELECT MIN(AUTOID) _
FROM dbo.ATTENDANCE 
    GROUP BY EMPLOYEE_ID,ATTENDANCE_DATE) 
Run Code Online (Sandbox Code Playgroud)

这很好用。我使用这个的原因是因为唯一可用的唯一 ID 是IDENTITY列中的一个。为了确定是否有重复的行,我必须查看多列的组合。

但是,如果我有一组重复的行,我/SQL Server 如何决定删除哪些行?我将如何强制它删除除最高IDENTITY值之外的所有内容?

EMPLOYEE_ID     ATTENDANCE_DATE     AUTOID
A001            2011-01-01          1
A001            2011-01-01          2
Run Code Online (Sandbox Code Playgroud)

如果我现在运行查询,它恰好删除了第二个,有AUTOID2 个。但我试图删除除这个之外的所有内容(因为这是最新添加的)。

sql-server sql-server-2012

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

sql-server ×2

sql-server-2012 ×1

trigger ×1