Sql server sql错误更新关键字“insert”附近的语法不正确

Sql server sql错误更新关键字“insert”附近的语法不正确,sql-server,Sql Server,假设我有两张桌子 table1(id,name,description,tid) table2(id(autoincrement),value) update table1 set tid=insert into table2 values('x') SELECT @@IDENTITY AS id 上面的命令给了我一个错误 你能提出一个解决方案吗???你需要将这些语句分解,改用@SCOPE\u IDENTITY: @@SCOPE\u IDENTITY将返回在当前作用域中创建的最后一个标识值。

假设我有两张桌子

table1(id,name,description,tid)
table2(id(autoincrement),value)

update table1 set tid=insert into table2 values('x') SELECT @@IDENTITY AS id
上面的命令给了我一个错误


你能提出一个解决方案吗???

你需要将这些语句分解,改用@SCOPE\u IDENTITY:


@@SCOPE\u IDENTITY将返回在当前作用域中创建的最后一个标识值。确保这两条语句之间没有任何内容。

是否确实要使用插入到另一个表的方式更新table1.tid??这没有多大意义。我确定我要更新并插入插入表2中插入的最后一个id。是否同时更新并插入表1?我的建议:首先插入表2,然后从表2中选择表1解决了您的正确问题,但我想同时做这两件事,感谢您将我的评论转化为答案;
INSERT INTO table2
VALUES('x')

UPDATE table1
SET tid = @@SCOPE_IDENTITY