注册 登录
编程论坛 ASP技术论坛

SQL存储过程为什么这样写不行呢?

ysf0181 发布于 2012-12-06 15:43, 365 次点击
sql = "exec sp_biao ' name = '33' '"
调用存储过程

存储代码:
CREATE PROCEDURE dbo.sp_biao(

  @tiaojian varchar(100) ---查询条件 )
AS
     declare @zSql varchar(500) ---主语句
           begin
             set @zSql = 'select  *  from person where  '''+   @tiaojian + '''  '
           end

     exec(@zSql)
GO



name 为字符字段,这样查询结果,CPU100%。

只能这样写:
sql = "exec sp_biao ' 33 '"
存储代码:
CREATE PROCEDURE dbo.sp_biao(

  @tiaojian varchar(100) ---查询条件 )
AS
     declare @zSql varchar(500) ---主语句
           begin
             set @zSql = 'select  *  from person where name =  '''+   @tiaojian + '''  '
           end

     exec(@zSql)
GO

name 为字符字段,这样查询结果,CPU就不会100%,可以正常查询的。
3 回复
#2
yms1232012-12-07 13:24
cpu100%?你数据库里有多少数据啊?
#3
ysf01812012-12-07 14:26

存储代码:
CREATE PROCEDURE dbo.sp_biao(

  @tiaojian varchar(100) ---查询条件 )
AS
     declare @zSql varchar(500) ---主语句
           begin
             set @zSql = 'select  *  from person where  '''+   @tiaojian + '''  '
           end

     exec(@zSql)
GO
调用存储过程
sql = "exec sp_biao ' name = '33' '"   这样是错误的SQL存储过程必须两个上逗号的,我只有一个
sql = "exec sp_biao ' name = ''33'' '"   这样就执行了,CPU就不会100%了,谢谢。
SQL2000
#4
阳大爷2012-12-07 17:18
。。。
1