【发布时间】:2016-07-21 12:24:03
【问题描述】:
我一直在研究向 SQL 表中插入行,并在下面创建了测试代码
DECLARE @ItemSale TABLE (ID INT, Qty INT, Price INT)
INSERT INTO @ItemSale (ID, Qty, Price)
VALUES (1, 25, 100)
INSERT INTO @ItemSale (ID, Qty, Price)
VALUES (2, 4, 200)
INSERT INTO @ItemSale (ID, Qty, Price)
VALUES (3, 5, 300)
SELECT
*
--SUM(Price)
FROM
@ItemSale
我只取回第一行
ID Qty Price
1 25 100
当我在 SUM(Price) 中评论(并注释掉 *)时,我得到了
SUM
600
这是我所期望的 谁能帮我理解这里发生了什么?
【问题讨论】:
-
用您正在使用的数据库标记您的问题。您的代码应该返回所有行。这可能是您使用的界面软件的问题。
-
假设 t-sql 会如你所愿返回 3 行,你用什么来执行查询?
-
我刚刚测试了代码。它返回 3 行。
-
我假设这是基于语法的 SQL Server。我能够复制此行为的唯一方法是首先运行
SET ROWCOUNT 1;。也许在运行SET ROWCOUNT 0;后重试 -
谢谢运行 SET ROWCOUNT 0 先返回 ID 数量 价格 1 25 100 2 4 200 3 5 300 符合预期
标签: sql sql-server tsql insert