有表A 只有一列
有3条数据工资
保险
公积金表B只有一列
Guid需求:从A表中取出记录,作为B表的新列。处理后B表结构如下:Guid 工资 保险 公积金下面是部分存储过程代码: 
create table B
(
Guid uniqueidentifier
)declare @Name as uniqueidentifier;DECLARE ProjectDirectCursor CURSOR FOR
select distinct Name from A
OPEN ProjectDirectCursor
FETCH NEXT FROM ProjectDirectCursor into @Name
WHILE @@FETCH_STATUS = 0
BEGIN
alter table #ProjectCostView add @Name decimal(19,3) null END
close ProjectDirectCursor
DEALLOCATE ProjectDirectCursor
出错信息如下: '@Name' 附近有语法错误。 行数为alter所在的行请问这个问题如何解决

解决方案 »

  1.   

    你用Alter是来修改表结构,但是@name是变量,不能当成字段名称
      

  2.   

    to 那怎么解决??把它转换成字符串,然后把
    alter table #ProjectCostView add @Name decimal(19,3) null
    改为
    exec( 'alter table #ProjectCostView add' + varCharName + 'decimal(19,3) null' )
      

  3.   

    alter 是修改表的结构,增加列的,而@Name是参数,这里不能这样
              alter table #ProjectCostView add @Name decimal(19,3) null把@Name 换成Name吧,(注:Name是保留字,要加上[])
      

  4.   

    ALTER TABLE table [ * ]
        ADD [ COLUMN ] column type