DELETE company.,ebill. FROM company,ebill WHERE company.id = ebill.id AND company.id = 5;
这句sql语句为啥报错了,同时删除2张表相同id对应的行。
innerjoin匹配,你的语法也不是sql server的语法
DELETE company, ebill
FROM company
INNER JOIN ebill ON company.id = ebill.id
WHERE company.id = 5;
该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
根据您提供的SQL语句和截图,可以看出出现如下错误:
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'FROM'.
这个错误一般是由于SQL语法错误引起的。
根据您提供的SQL语句,可以猜测您想要删除两个表中ID为5的记录。但是,您的SQL语句缺少表别名,并且DELETE语句的语法也有问题。
您可以尝试下面的SQL语句:
DELETE company, ebill
FROM company
INNER JOIN ebill ON company.id = ebill.id
WHERE company.id = 5;
这个SQL语句使用了INNER JOIN来连接company表和ebill表,并且在WHERE子句中指定了要删除的记录的ID值为5。同时,使用了正确的语法来删除两个表中的记录。
希望这个回答能够帮助到您。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
我们在事务内插入新数据(具有自增列),之后尽管我们执行回滚操作,这个自增id值也不会重用。实验如下:
create table test(
id int primary key identity,
name varchar(50)
)
-- 开启事务
begin tran
-- 插入一条数据
insert into test(name) values('小明')
-- 回滚 回滚后,插入的数据被抛弃,但已经使用的自增id被消耗掉
rollback
-- 再插入数据
insert into test(name) values('a')
-- 查询自增的id值
select * from test
/* 输出
id name
----------- -------------------
2 a
*/
针对你提出的问题,我会分两部分进行回答。
第一部分:删除语句报错问题。 你没有提供具体的错误信息,因此我无法给出针对性的解决方案。一般来说,删除语句报错的原因有很多种可能性,比如: - 删除语句中的条件表达式有误; - 被删除的表被其他表引用,无法删除; - 被删除的表被锁住,无法删除等等。
如果你能提供具体的错误信息,我可以针对性地给出解决方案。
第二部分:删除两张表中相同ID对应的行。 你可以使用两个delete语句来删除两张表中相同ID对应的行,步骤如下: 1. 首先找到两张表中相同ID的数据行,可以使用join操作实现:
SELECT table1.id, table2.id
FROM table1
JOIN table2 ON table1.id = table2.id
DELETE FROM table1 WHERE id IN (SELECT id FROM table1 JOIN table2 ON table1.id = table2.id);
DELETE FROM table2 WHERE id IN (SELECT id FROM table1 JOIN table2 ON table1.id = table2.id);
以上是一个简单的解决方案,具体实现还需要根据你的表结构和数据量来进行微调。如果你有更多的问题或需要更加详细的解决方案,可以提供更多信息让我更好地帮助你。