日期:2014-05-18  浏览次数:20482 次

java利用delete语句删除sqlserver2000中数据的疑问
有两个数据表BOOK和OrderBook,都含有一个字段BOOKID,想把两个表中BOOKID为355的相关记录都删掉,想通过一条delete语句实现:
sql="delete from BOOK a,OrderBook b where a.BOOKID=b.BOOKID and a.BOOKID=355"
st.executeUpdate(sql);

运行提示为: 
[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]第 1 行: 'a' 附近有语法错误。

sql语句有错吗?对于SQLServer 2000 可否这样写? 


------解决方案--------------------
SQL 目前所有版本都不支持同时Delete两张表,
也不支持同时update两张表信息,
建议楼主采用触发器(Trigger)实现....

------解决方案--------------------
SQL code

create trigger Trigger_name on Book
For Delete
As 
    Declare @BookId int
    Select @BookId=BookId From DELETED
    Delete From OrderBook Where BookId=@BookID

------解决方案--------------------
另外 请参看http://topic.csdn.net/u/20120603/11/7596c700-8b2d-4751-9cde-f29ba40c0126.html?50443