create proc pro_VerifyCode_Insert
@tablename varchar(200),
@verifycode varchar(300),
@isfrist bit
as 
declare @sql varchar(500)
set @sql = 'INSERT into' + @tablename + '([VerifyCode],[IsFrist])values(' + @verifycode + ',' + @isfrist + ')'
exec (@sql) 服务器: 消息 403,级别 16,状态 1,过程 pro_VerifyCode_Insert,行 7
对数据类型而言运算符无效。运算符为 add,类型为 bit。CREATE PROCEDURE [pro_VerifyCode_Insert]
@tablename varchar(200),
@verifycode varchar(300), 
@isfrist bit
as
INSERT @tablename
( [VerifyCode],
[IsFrist]
)
values
( @verifycode,
@isfrist
)
服务器: 消息 137,级别 15,状态 2,过程 pro_VerifyCode_Insert,行 9
必须声明变量 '@tablename'。

解决方案 »

  1.   

    create proc pro_VerifyCode_Insert 
    @tablename varchar(200), 
    @verifycode varchar(300), 
    @isfrist bit 
    as 
    declare @sql varchar(500) 
    set @sql = 'INSERT into ' + @tablename + ' ([VerifyCode],[IsFrist])values(''' + @verifycode + ''',' + ltrim(@isfrist) + ')' 
    exec (@sql) 第一个改成这样试一下。
      

  2.   

    create proc pro_VerifyCode_Insert 
    @tablename varchar(200), 
    @verifycode varchar(300), 
    @isfrist bit 
    as 
    declare @sql varchar(500) 
    set @sql = 'INSERT into' + @tablename + '([VerifyCode],[IsFrist])values(' + @verifycode + ',' + ltrim(@isfrist) + ')' 
    exec (@sql) 
      

  3.   

    第一个问题试以下把bit改为int看一看,第二个的话你根本就不能直接在insert语句中直接放入变量名的,这里可以参考一下上个例子,那里应该是对的。
      

  4.   

    二楼的大哥改了后可以通过,但插入数据时出错
    exec pro_verifycode_insert 'testable','1111111111',0,
    服务器: 消息 170,级别 15,状态 1,行 1
    第 1 行: ',' 附近有语法错误。
      

  5.   

    create proc pro_VerifyCode_Insert 
    @tablename varchar(200), 
    @verifycode varchar(300), 
    @isfrist bit 
    as 
    declare @sql varchar(500) 
    set @sql = 'INSERT into' + @tablename + '([VerifyCode],[IsFrist])values(' + @verifycode + ',' + ltrim(@isfrist) + ')'
    print @sql 
    exec (@sql)
    把那句sql打印出来看看是什么问题