求一条SQL语句~~急!

BestCoding 2006-01-24 07:39:27
有这样一个存储过程:
alter proc GetNewsByNChar
@Number int,
as
declare @Stute nchar(1)
set @Stute = 'Y'

exec('select top ' + @Number + ' * from News' +
' where bStute = ' + @Stute + ' order by nid desc')
return 0

在查询分析器中执行,返回信息是: 列名 'Y' 无效。

bStute的类型是nchar(1)
现在SQL的语句放在exec里面,不懂怎样给字符串赋值,使用\'来添加单引号把字符Y括在里面,
但是不成功。
还请大家帮帮忙,感谢!
...全文
74 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
BestCoding 2006-01-24
  • 打赏
  • 举报
回复
哎呀,大意了,把你写的'''看成了"'

哈哈哈~~~问题解决~~~麻烦你了!
OracleRoob 2006-01-24
  • 打赏
  • 举报
回复
select top 10 * from News
where bStute = "Y" order by nid desc

--这样的SQL语句执行肯定通不过
OracleRoob 2006-01-24
  • 打赏
  • 举报
回复
要使用单引号,在SQL语句语法中没有使用双引号的地方
BestCoding 2006-01-24
  • 打赏
  • 举报
回复
老大,是真的~~!

打印出来是:
select top 10 * from News
where bStute = "Y" order by nid desc

如果是单引号就肯定没问题,但双引号编译报错
OracleRoob 2006-01-24
  • 打赏
  • 举报
回复
--这个语句也有问题?

create proc GetNewsByNChar
@Number int
as
declare @Stute nchar(1),@s nchar(2000)
set @Stute = 'Y'
set @number =10
set @s= 'select top ' + cast(@Number as varchar(100)) + ' * from News' +
' where bStute = ''' + @Stute + ''' order by nid desc'

select @s
exec (@s)

return 0
BestCoding 2006-01-24
  • 打赏
  • 举报
回复
不行,返回: 列名 'Y' 无效

exec('select top ' + @Number + ' * from News' +
' where bStute = ' + @Stute + ' order by nid desc')
我是想得到如下的结果:
select top 10 * from News
where bStute = 'Y' order by nid desc

现在的问题出在,不知道如何把字符Y传给bStute
OracleRoob 2006-01-24
  • 打赏
  • 举报
回复

alter proc GetNewsByNChar
@Number int
as
declare @Stute nchar(1),@s nchar(2000)
set @Stute = 'Y'
set @number =10
set @s= 'select top ' + cast(@Number as varchar(100)) + ' * from News' +
' where bStute = ''' + @Stute + ''' order by nid desc'

select @s
exec (@s)

return 0
子陌红尘 2006-01-24
  • 打赏
  • 举报
回复
...
exec('select top '+rtrim(@Number)+' * from News where bStute='''+@Stute+ ''' order by nid desc')
...
OracleRoob 2006-01-24
  • 打赏
  • 举报
回复
alter proc GetNewsByNChar
@Number int
as
declare @Stute nchar(1)
set @Stute = 'Y'

exec('select top ' + cast(@Number as varchar(100)) + ' * from News' +
' where bStute = ''' + @Stute + ''' order by nid desc')
return 0

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧