SQL Server 2000中有两个表:t1、t2,主键分别是name, type和name, type, year,用括号括起来了:
t1: (name, type), area, data
t2: (name, type, year), data我现在要删除t2中name和type对应的t1中的area为5的数据,写了SQL如下:
delete from t2 where (name, type) in (select name, type from t1 where area = 5)可是SQL Server 2000报告语法错误,同样的SQL在SQL Server 2005下却正常,在SQL Server 2000中如何解决?如果改SQL语句,不要用数据库本身的函数。
t1: (name, type), area, data
t2: (name, type, year), data我现在要删除t2中name和type对应的t1中的area为5的数据,写了SQL如下:
delete from t2 where (name, type) in (select name, type from t1 where area = 5)可是SQL Server 2000报告语法错误,同样的SQL在SQL Server 2005下却正常,在SQL Server 2000中如何解决?如果改SQL语句,不要用数据库本身的函数。
解决方案 »
- 表的主键设置为自动编号也会出现主键冲突的错误?
- 各位怎么取出一个月有多少天
- 如何优化这句sql语句
- 为什么 封锁协议有3级 ? 而 事务隔离级别 确有4个 他们之间到底是什么关系 不是1对1的关系吗?
- EXCEL中的数据如何导入到MSSQL中
- 存储过程报错,请教大虾指点!急急急!
- 求tsql: 这样的叫什么join?如何由表ta,tb查询出tc?
- 帮我看看这些存储过程什么错
- sql server 怎样安装在win2000 professional下?
- 求SQL的一个排序算法
- SQL Server2005的ReportService中连接Oracle数据源时,报表不能传参数,是怎么回事,谢谢了!
- sql server2000的权限问题
from t2
inner join t1
on t2.name = t1.name
and t2.type = t1.type
where t1.area = 5
varchar类型的话可以:delete from t2 where name+type in (select name+type from t1 where area = 5)否则需先去掉空格
-----------------------------------------------------------------------------varchar的话也不行啊,如果name和type分别:
name:abcd
type:ef
和这样一种情况:
name:ab
type:cdef
两种情况name+type都是abcdef啊,可是却不是同一条记录。