为什么只添加一个URL? 我在设置表中的现有记录中添加了五个新URL。 声明@setting表(ID int,jsoninfo varchar(最大)) 插入@setting-(受影响2行) 值 (1,'{“ urls”:[&...

问题描述 投票:0回答:1

为什么只添加一个URL?我期望添加所有5个新URL。

	

问题分为两部分。 首先,查看此代码:
SELECT u.*, s.*    -- (10 rows affected)
FROM @Setting s, @newUrls u;

arrays json sql-server
1个回答
1
投票
子句中的语法实际上是在使用已过时的30年以上的语法进行了

FROM

语法。并且没有匹配的标准,它等同于A

JOIN

,从两张表中为您提供所有可能的记录组合。 您不应使用此语法
如果您想加入,

Always

使用较新的ANSI JOIN语法。其中任何一个都是等效的(并且首选!),而不是原始代码:
CROSS JOIN
or
SELECT u.*, s.* -- (10 rows affected) FROM @Setting s CROSS JOIN @newUrls u;
我们在
SELECT u.*, s.* -- (10 rows affected) FROM @Setting s INNER JOIN @newUrls u ON 1=1

声明中也有相同的情况。存在区别,因为您正在进行更新,只有原始表很重要。那里只有两行,因此只能影响两行。

这使我进入第二期。 如果您想将

UPDATE

数据添加到@newUrls数据中,则是

not
查询。考虑助记符
@Settings

专门指定表中的

居住行。相反,您需要做另一个
UPDATE
。 此插入的外观取决于您要如何处理

UPDATE

列。由于我在任何地方都看不到
INSERT


Id

,因此您可能需要其他代码来处理它,并且缺乏更清楚的指示您可能正在与您一起工作的内容。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.