if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_insertRoomNum]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[sp_insertRoomNum]
GOCREATE  procedure sp_insertRoomNum(
@Status int output,
@Errmsg VARCHAR(255) output,
@HouseNuma varchar(10),
@Num int(4),
        @HouseNumb varchar(10),
        @RoomNuma varchar(10),
        @Name nvarchar(10),
        @Style nvarchar(10),
        @Area float(8),
        @Price float(8),
        @Scale float(8),
        @Chargeofmonth varchar(53),
        @Estate nvarchar(10))
AS
BEGIN
    SET NOCOUNT ON
    DECLARE @TmpSQL NVARCHAR(4000)
    SET @Status=0
    SET @Errmsg=''
    SET @TmpSQL=N'insert into ['+@HouseNuma+N'](序号,栋号,房号,姓名,类型,面积,单价,日收滞纳金比例,月应收费用,缴费状态) values(@Num,@HouseNumb,@RoomNuma,@Name,@Style,@Area,@Price,@Scale,@Chargeofmonth,@Estate)'
    EXEC SP_EXECUTESQL @TmpSQL,
                       N'@Num int(4),@HouseNumb varchar(10),@RoomNuma varchar(10),@Name nvarchar(10),@Style nvarchar(10),@Area float(8),@Price float(8),@Scale float(8),@Chargeofmonth varchar(53),@Estate nvarchar(10)',
                       @Num,@HouseNumb,@RoomNuma,@Name,@Style,@Area,@Price,@Scale,@Chargeofmonth,@Estate
                          
    SET @Status=-2
    
    IF @@Error<>0 BEGIN
        SET @Status=-1
        SET @ErrMsg='数据库异常错误,请稍后再试'
    END
    
    SET NOCOUNT OFF
END
GO

解决方案 »

  1.   

    --or
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_insertRoomNum]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[sp_insertRoomNum]
    GOCREATE  procedure sp_insertRoomNum(
    @Status int output,
    @Errmsg VARCHAR(255) output,
    @HouseNuma varchar(10),
    @Num int(4),
            @HouseNumb varchar(10),
            @RoomNuma varchar(10),
            @Name nvarchar(10),
            @Style nvarchar(10),
            @Area float(8),
            @Price float(8),
            @Scale float(8),
            @Chargeofmonth varchar(53),
            @Estate nvarchar(10)
            
    )
    AS SET NOCOUNT ON DECLARE @TmpSQL VARCHAR(2000)
    SET @Status=0
    SET @Errmsg=''
      /*SET @TmpSQL='select 房号 from ['+@HouseNum+'] where 房号 ='''+@RoomNum+''''*/
            SET @TmpSQL='insert into ['+@HouseNuma+'](序号,栋号,房号,姓名,类型,面积,单价,日收滞纳金比例,月应收费用,缴费状态) values ('+@Num+','+@HouseNumb+','+@RoomNuma+','+@Name+','+@Style+','+@Area+','+@Price+','+@Scale+','+@Chargeofmonth+','+@Estate+') ' EXECUTE(@TmpSQL)
            SET @Status=-2
    PRINT @TmpSQL /*If @@ROWCOUNT<>0 Begin
       Set @Status=-2
       SET @Errmsg='Room existed!'
    END*/ IF @@Error<>0 BEGIN
    SET @Status=-1
    SET @ErrMsg='数据库异常错误,请稍后再试'
    END
    GO
      

  2.   

    SET @TmpSQL='insert into ['+@HouseNuma+'](序号,栋号,房号,姓名,类型,面积,单价,日收滞纳金比例,月应收费用,缴费状态) values'+(@Num,@HouseNumb,@RoomNuma,@Name,@Style,@Area,@Price,@Scale,@Chargeofmonth,@Estate)+''
    ===========>
    SET @TmpSQL='insert into ['+@HouseNuma+'](序号,栋号,房号,姓名,类型,面积,单价,日收滞纳金比例,月应收费用,缴费状态) values('
    +@Num+','+@HouseNumb+','+@RoomNuma+','+@Name+','+@Style+','+cast(@Area as varchar(10))+','+cast(@Price as varchar(10))+','+cast(@Scale as varchar(10))+','+@Chargeofmonth+','+@Estate+')'