在sql server 7.0 中如何用execu 来执行条件查询?我这句话怎么会出错?具体情况请入……,很急。(100分)

  • 主题发起人 主题发起人 yiyu
  • 开始时间 开始时间
Y

yiyu

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的是下面的语句:
declare @value char(30)
set @value="男子甲组100米决赛" --先给出查询条件。

exec("select * from subject20 where subject_name=@value") --执行查询。

可是执行时会出现如下错误:

Server: Msg 137, Level 15, State 2, Line 1
Must declare the variable '@value'

请各位sql高手帮忙解决。我很急呀。
 
exec()是不需要的。
直接采用select * from subject20 where subject_name=@value即可
 
我就是必须用这语句来执行的。因为我的表名也是一个变量。
exec("select * from @tableName where subject_name=@value")
 
你可这样!
exec('select * from subject20 where subject_name = '+''''+@value+'''')
 
windpray:
这样不行,我是在sql query analyzer 中执行的。我已经按你的方法会做了,
可是还是一样的结果.你那么多''''''是什么意思?
 
>我就是必须用这语句来执行的。因为我的表名也是一个变量。
表名是变量也没关系。
 
>>表名是变量也没关系
这样是不行的,我试过n次了。那你是怎么写的。你有写成功过吗?
 
四个'表示一个'!
呀!这是什么意思?
是这样,如果你想在字附中使用一个',就得用四个'表示,
在D的帮助中有!
 
windpray:
可是我按的方法在sql query analyzer 中做是不行的。我没在delphi中用。
 
如果你用SP
你可以这样
create procedure yoursp (@value varchar(30))as
exec('select * from subject20 where subject_name = '+''''+@value+'''')
 
呀,可以啦。刚才出现一点的失误。
 
这样你的字段也可以用变量!我以前也有过你这样的问题,先在全没了!哈哈
 
后退
顶部