为什么我不能表达这个子查询?还有其他选择吗?

Rop*_*tah 1 sql sql-server

我收到一个错误:

在此上下文中不允许子查询.只允许标量表达式.

为什么不允许子查询?我只是想将一些值移到同一数据库中的另一行.还有另一种表达方式吗? (这只是一次性操作......)

INSERT INTO 
    Html_Content (pageid, html_content) 
VALUES 
    (20, (SELECT page_text FROM pages WHERE pageid = 29))
Run Code Online (Sandbox Code Playgroud)

Bob*_*mer 7

将您的查询更改为:

INSERT INTO  
    Html_Content (pageid, html_content)  
SELECT  
    20, page_text FROM pages WHERE pageid = 29
Run Code Online (Sandbox Code Playgroud)

推理是,当您需要将子查询的内容放入另一个表时,您希望使用此格式.您收到标量错误,因为通过使用"值"选项,您告诉SQL您要为每列插入谨慎值,并且只插入一行.