--一种已有商品的新品牌
create proc item
@aenames varchar(15),
@kcnames varchar(15),
@kenames varchar(15)
as
exec('insert into '+ @aenames+' values('+@kcnames+','+@kenames+')');
exec('create table '+@kenames+'(
DID int not null identity(1,1),
DCName varchar(15) not null,
DImage varchar(50),
DPrice money not null
)')
goexec item 'MobilePhone','龙心','DragonHeart';执行后报错如下:
服务器: 消息 128,级别 15,状态 1,行 1
在此上下文中不允许使用 '龙心'。此处只允许使用常量、表达式或变量。不允许使用列名。
就是插入过程有问题,表能正确的被创建,请问大虾这是为什么呢?

解决方案 »

  1.   

    create proc item
    @aenames varchar(15),
    @kcnames varchar(15),
    @kenames varchar(15)
    as
    exec('insert into '+ @aenames+' values('''+@kcnames+''','''+@kenames+''')');
    exec('create table '+@kenames+'(
    DID int not null identity(1,1),
    DCName varchar(15) not null,
    DImage varchar(50),
    DPrice money not null
    )')
    go
      

  2.   

    --trycreate proc item
    @aenames varchar(15),
    @kcnames varchar(15),
    @kenames varchar(15)
    as
    exec('insert into ['+ @aenames+'] values('''+@kcnames+''','''+@kenames+''')');
    exec('create table ['+@kenames+'](
    DID int not null identity(1,1),
    DCName varchar(15) not null,
    DImage varchar(50),
    DPrice money not null
    )')
    goexec item 'MobilePhone','龙心','DragonHeart';
      

  3.   

    琢磨了半天才想通 两个'表示一个',哈哈,多谢 MR.wangtiecheng !