我在构造一个存储过程时候需要达到这么个目的:
找出性别为‘f’的前n个员工,所以我执行这么一句:
如果执行这句没有问题:
declare @n int,@sex char(1)
set @n=3
set @sex='f'
exec('select top '+@n +' * from employee ' )但是如果执行这句就显示有问题了:
declare @n int,@sex char(1)
set @n=3
set @sex='f'
exec('select top '+@n +' * from employee where sex='+@sex )
就有问题了:
服务器: 消息 207,级别 16,状态 3,行 1
列名 'f' 无效。
怎么让一个参数传递到等号后面?怎么才能达到这个效果?谢谢各位!
找出性别为‘f’的前n个员工,所以我执行这么一句:
如果执行这句没有问题:
declare @n int,@sex char(1)
set @n=3
set @sex='f'
exec('select top '+@n +' * from employee ' )但是如果执行这句就显示有问题了:
declare @n int,@sex char(1)
set @n=3
set @sex='f'
exec('select top '+@n +' * from employee where sex='+@sex )
就有问题了:
服务器: 消息 207,级别 16,状态 3,行 1
列名 'f' 无效。
怎么让一个参数传递到等号后面?怎么才能达到这个效果?谢谢各位!
解决方案 »
- mysql如何做索引
- 如何把数据库中的数据导出成sql的insert语句?
- 一个触发器的问题,请高手指教
- 一个困扰我很久的问题
- 易语言程序通过外网访问内网MSSQL数据库问题
- ==寻找效率最高的sql语句:在结构相同的两表中找出不同的记录(Sql Server 2000)==
- 简明扼要,,,,复合主键的约束怎么写??
- 如何把数据库中的表和视图结构导出来?
- 请教,如何在ASP中连接SQLSERVER数据库
- 救命啊!!为什么在DBASE数据库里执行“ALTER TABLE TableName ADD COLUMN AAA C(10)”发生异常?!,使用环境:VC++,该语句不兼容啊!
- 在用VB+SQL SERVER 2000编写程序时,什么样的情况下才需要自己加锁解锁。VB如何使用事务,请个例子
- 递归问题,高手帮忙
set @n=3
set @sex='f'
--exec('select top '+@n +' * from employee where sex='+@sex )
exec('select top '+@n +' * from employee where sex='''+@sex+'''' )
set @n=3
set @sex= 'f '
exec( 'select top '+@n + ' * from employee where sex= '''+@sex +'''' )
'select * from tb where sex='f''但是字串中嵌了字串,要予区分.
将' '定界的字串中出现的'用''来转义
即
' select * from tb where sex=''f'' '而你的@f是个变量
' select * from tb where sex=''' + @f + ''''
先发上来再看,现在自己都不知道是什么颜色了.
用来定界 select * from tb where sex=''
第2个和第3个其实是一个, 就是'转义成的两个第5个和第8个是成对的 用来定界 ''
第6和第7是其实也是一个,就是'转义成的两个2,3在前,6,7在后,来定界@f的值
即 ''f''
实际上表示的是 'f'