把字段名用变量为何不能插入?如下declare @bx varchar(5)set @bx=B30
INSERT INTO KqPaiBan(month,CODE,@BX) VALUES ('200910','00001','A1')不用变量下面就可以插入。
INSERT INTO KqPaiBan(month,CODE,B30) VALUES ('200910','00001','A1')

解决方案 »

  1.   

    declare @bx varchar(5) set @bx=B30 
    exec(INSERT INTO KqPaiBan(month,CODE,'+@BX+') VALUES ('200910','00001','A1')) 
      

  2.   

    declare @bx varchar(5)
    set @bx=B30
    exec 'INSERT INTO KqPaiBan(month,CODE,'+@BX+') VALUES (''200910'',''00001'',''A1'')'
      

  3.   

    declare @bx varchar(5) set @bx=B30 
    exec('INSERT INTO KqPaiBan(month,CODE,'+@BX+') VALUES (''200910'',''00001'',''''A1'''')') 
      

  4.   

    --> 测试数据:[tb1]
    if object_id('[tb1]') is not null drop table [tb1]
    create table [tb1]([编号] varchar(7),[数量] int)
    insert [tb1]
    select '0100001',12 union all
    select '0100002',15 union all
    select '0100003',18 union all
    select '0100004',20  select * from [tb1]  declare @s varchar(100)
    set @s='数量'
    exec('insert into tb1(编号,'+@s+') values(''00021'',10)')
    select * from tb1/*
    编号      数量
    ------- -----------
    0100001 12
    0100002 15
    0100003 18
    0100004 20(4 行受影响)(1 行受影响)编号      数量
    ------- -----------
    0100001 12
    0100002 15
    0100003 18
    0100004 20
    00021   10(5 行受影响)*/