小编Ema*_*ian的帖子

SQL Server - 为什么同一个表扫描两次?

有谁知道为什么sql server选择查询表'building'两次?有什么解释吗?可以只用一个表搜索来完成吗?

这是代码示例:

DECLARE @id1stBuild INT = 1
    ,@number1stBuild INT = 2
    ,@idLastBuild INT = 5
    ,@numberLastBuild INT = 1;
DECLARE @nr TABLE (nr INT);

INSERT @nr
VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);

CREATE TABLE building (
    id INT PRIMARY KEY identity(1, 1)
    ,number INT NOT NULL
    ,idStreet INT NOT NULL
    ,surface INT NOT NULL
    )

INSERT INTO building (number,idStreet,surface)
SELECT bl.b
    ,n.nr
    ,abs(convert(BIGINT, convert(VARBINARY, NEWID()))) % 500
FROM (
    SELECT ROW_NUMBER() OVER (ORDER BY n1.nr) b
    FROM @nr n1
    CROSS JOIN @nr n2 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-execution-plan

6
推荐指数
2
解决办法
490
查看次数

标签 统计

sql ×1

sql-execution-plan ×1

sql-server ×1