CREATE procedure procIns
@strBFName nvarchar(50),
@iWinNum int,
@iIsInclude int,
@iWFDocNum int,
@iWTtlDocNum int,
@fWFPb int,
@fWFPg int,
@strDocUrl nvarchar(255)
as
begin
print @@error
declare @strIns nvarchar(1000)
set @strIns='insert into tblBF strFName,vtrWF_iWinNum,vtrWF_iIsInclude,vtrWF_iWFDocNum,vtrWF_iWTtlDocNum,vtrWF_fWFPb,vtrWF_fWFPg,
     vtrWF_vtrWFDocs values ('+char(39)+@strBFName+char(39)+','+@iWinNum+','+@iIsInclude+','+@iWFDocNum+','
     +@iWTtlDocNum+','+@fWFPb+','+@fWFPg+','+char(39)+@strDocUrl+char(39)+')'
print @strIns
exec(@strIns)
print @@errorend
GO在运行的时候输入exec procIns 'who',1,2,3,4,1.1,2.2, 'http',出现如下错误:
服务器: 消息 245,级别 16,状态 1,过程 procIns,行 14
将 nvarchar 值 'insert into tblBF strFName,vtrWF_iWinNum,vtrWF_iIsInclude,vtrWF_iWFDocNum,vtrWF_iWTtlDocNum,vtrWF_fWFPb,vtrWF_fWFPg,
     vtrWF_vtrWFDocs values ('who',' 转换为数据类型为 int 的列时发生语法错误。数据类型对应的都对啊

解决方案 »

  1.   

    --TRY
    CREATE procedure procIns 
    @strBFName nvarchar(50), 
    @iWinNum int, 
    @iIsInclude int, 
    @iWFDocNum int, 
    @iWTtlDocNum int, 
    @fWFPb int, 
    @fWFPg int, 
    @strDocUrl nvarchar(255) 
    as 
    begin 
    print @@error 
    declare @strIns nvarchar(1000) 
    set @strIns='insert into tblBF strFName,vtrWF_iWinNum,vtrWF_iIsInclude,vtrWF_iWFDocNum,vtrWF_iWTtlDocNum,vtrWF_fWFPb,vtrWF_fWFPg, 
        vtrWF_vtrWFDocs values ('+char(39)+@strBFName+char(39)+','+ltrim(@iWinNum)+','+ltrim(@iIsInclude)+','+ltrim(@iWFDocNum)+',' 
        +ltrim(@iWTtlDocNum)+','+ltrim(@fWFPb)+','+ltrim(@fWFPg)+','+char(39)+@strDocUrl+char(39)+')' 
    print @strIns 
    exec(@strIns) 
    print @@error end 
    GO 
      

  2.   

    --同意
    set @strIns='insert into tblBF (strFName,vtrWF_iWinNum,vtrWF_iIsInclude,vtrWF_iWFDocNum,vtrWF_iWTtlDocNum,vtrWF_fWFPb,vtrWF_fWFPg, 
        vtrWF_vtrWFDocs) values ('+char(39)+@strBFName+char(39)+','+ltrim(@iWinNum)+','+ltrim(@iIsInclude)+','+ltrim(@iWFDocNum)+',' 
        +ltrim(@iWTtlDocNum)+','+ltrim(@fWFPb)+','+ltrim(@fWFPg)+','+char(39)+@strDocUrl+char(39)+')' 
      

  3.   

    是要加括号,呵呵,疏忽了,不过之前没有写这些字段的时候也是不正确
    就是这样 insert into tblBF values...
    也不明白原因