再问一个带参插入的问题
--一种已有商品的新品牌
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
exec item 'MobilePhone ', '龙心 ', 'DragonHeart ';
执行后报错如下:
服务器: 消息 128,级别 15,状态 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
------解决方案----------------------try
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
exec item 'MobilePhone ', '龙心 ', 'DragonHeart ';