【发布时间】:2011-07-10 03:11:37
【问题描述】:
我有一张表SEND,其中有一列Aname:
Aname
------
GREAME
PETER
另一个表 RECEIVE 有 2 列:
Aname Permission
-----------------------------------------------
GREAME (copied from table SEND) 'my own value will be inserted here,
specified in insert query'
PETER (copied from table SEND) 'my own value will be inserted here,
specified in insert query'
现在如上所示,我只想将表 SEND 中的 Aname 列插入到新表 RECEIVE 中,并在第二列中插入一个新值。
另外,我希望RECEIVE 表中不能插入重复值:
我想要这个:
Aname Permission
---------------------
GREAME PLAYER
GREAME PLAYER --- COULD NOT BE INSERTED
GREAME SALESMAN --- COULD BE INSERTED
我正在使用这个查询:
insert into receive(Aname, Permission)
select Aname , 'Select'
from SEND
where not exists
(select * from RECEIVE where Aname = 'GREAME' and Permission = 'select')
此查询从SEND 表中获取名称 GREAME 和 PETER,并将它们插入到 RECEIVE 表中,但我希望只提取 GREAME,而不是 PETER。
我该怎么做?
它从表发送中获取所有行,并将它们插入表接收,但我希望只插入一行。所以我希望查询是这样的,但它给出了语法错误:
insert into RECEIVE(Aname , Permission)
select Aname , 'select'
from SEND
WHERE Aname = 'GREAME' -------------this line gives error
where not exists
(select * from RECEIVE where aname = 'GREAME' and Permission = 'select')
【问题讨论】:
-
@msrc_s : 先生,它给出了语法错误,我知道我们不能使用两个 where 子句,但它是我希望查询执行的工作的描述。
标签: c# .net sql sql-server sql-server-2005