本帖最后由 lincole 于 2009-11-20 15:07:51 编辑

解决方案 »

  1.   

    你的sql语句是这样的:UPDATE LSB_fdqhdhz SET 'bdName' = 'kk' WHERE gzid = 'LSB00000000000'
      

  2.   

    应该是这样:alter PROCEDURE [dbo].[LSB_fdqhdhz_Update]
    @value varchar(50),
    @gzid varchar(50),
    @type varchar(50)
    as
    begin
    declare @sql nvarchar(600)
    set @sql = 'UPDATE LSB_fdqhdhz SET '+convert(nvarchar,@type)+' = '''+convert(nvarchar,@value)+''' WHERE gzid = '''+convert(nvarchar,@gzid)+''''
    end
    exec(@sql)
      

  3.   

    set @sql = 'UPDATE LSB_fdqhdhz SET ' + @type + ' = ''' + @value + ''' WHERE gzid = ''' + @gzid + ''''
      

  4.   

    set @sql = 'UPDATE LSB_fdqhdhz SET ' + @type + ' = ''' + @value + ''' WHERE gzid = ''' + @gzid + ''''ALTER PROCEDURE [dbo].[LSB_fdqhdhz_Update]
    @value varchar(50),
    @gzid varchar(50),
    @type varchar(50)
    as
    begin
    declare @sql nvarchar(600)
    set @sql = 'UPDATE LSB_fdqhdhz SET ' + @type + ' = ''' + @value + ''' WHERE gzid = ''' + @gzid + ''''
    end
    exec(@sql)
      

  5.   

    改了之后调用的sql是这样:
    UPDATE LSB_fdqhdhz SET bdName = 'kk' WHERE gzid = 'LSB00000000000'
      

  6.   

    ALTER PROCEDURE [dbo].[LSB_fdqhdhz_Update]
    @value varchar(50),
    @gzid varchar(50),
    @type varchar(50)
    as
    begin
    declare @sql nvarchar(600)
    set @sql = 'UPDATE LSB_fdqhdhz SET '+convert(nvarchar,@type)+' = '''+convert(nvarchar,@value)+''' WHERE gzid = '''+convert(nvarchar,@gzid)+''''
    end
    exec(@sql)
      

  7.   

    拼字符串 不好 危险 建议使用sp_executesql
      

  8.   

    存储过程最后都end了还写了个exec没问题么?