存储过程的问题,很容易得的50分

pinnacle897 2003-09-17 10:45:24
存储过程中
@a_where varchar(100)
select * from news where @a_where
为什么不行,我用什么方法向存储过程中传一个where条件呢?
请您指教,不胜感激
...全文
16 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnlamar 2003-09-17
  • 打赏
  • 举报
回复
直接执行的语句里面是不能这样写的
你先把他定义,再执行就OK了
比如
DECLARE @Sql nvarchar(200)
SET @Sql ='select * from news where'+@a_where
EXEC(@Sql)
91bct 2003-09-17
  • 打赏
  • 举报
回复
数据库是SqlServer还是Oracle?
如果是Sqlserver,那楼上几位不是说到很清楚么?
就是在过程名后加入参数,如:
create procedure user.dt_GetLiveRecordSet
@a_where varchar(100)
AS
select * from news where field=@a_where
go
pinnacle897 2003-09-17
  • 打赏
  • 举报
回复
帮忙啊
cnhgj 2003-09-17
  • 打赏
  • 举报
回复
CREATE PROCEDURE user.dt_GetLiveRecordSet
@a_where varchar(100)
AS
select * from news where field=@a_where
go
pinnacle897 2003-09-17
  • 打赏
  • 举报
回复
这样写为什么不行exec('select '+@intRootRecordCount+' = count(*) from role where ' + @a_where)
pinnacle897 2003-09-17
  • 打赏
  • 举报
回复
我还没试成功,稍等:)
pinnacle897 2003-09-17
  • 打赏
  • 举报
回复
我爱你们
zangyong 2003-09-17
  • 打赏
  • 举报
回复
一个输入参数

cmd.Parameter.Add("@a_where",SqlDbType.varchar,100)
cmd.Parameter["0"].value="ok"

gshope 2003-09-17
  • 打赏
  • 举报
回复
EXEC('select * from table1 where ' + @Whereat )
killerwc 2003-09-17
  • 打赏
  • 举报
回复
CREATE PROCEDURE dbo.sp_ECMISClassInformationQry
@Whereat nvarchar(4000) --where 子句--
AS
SET QUOTED_IDENTIFIER OFF
DECLARE @strsql nvarchar(2000)

SET @strsql='SELECT * from a'

EXEC(@strsql + @Whereat )
SET QUOTED_IDENTIFIER ON

GO
pinnacle897 2003-09-17
  • 打赏
  • 举报
回复
:兄弟们,不是我不结贴.我想知道
这样写为什么不行exec('select '+@intRootRecordCount+' = count(*) from role where ' + @a_where)
应该怎么写

62,067

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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