小弟写了一个预存程序是要插入数据到临时表内的
但不晓得为何执行会无法通过 
有打印出我要插入临时表的SQL命令以下是我编写的SQL语法
create proc 填充使用者谓词
(
@user varchar(20),
@Propertyvalue varchar(50),
@defaultelement varchar(50)
)
as
declare @sql nvarchar(200)
declare @name varchar(20)
set @name='name,'
set @sql='insert into ##'+ @user+'谓词表(Property,Propertyvalue,defaultelement) VALUES('++''''+'name'++''''+','+''''+@Propertyvalue+''''+','+''''+@defaultelement+''''+')'
print @sql
exec @sqldeclare @user varchar(20),@Propertyvalue varchar(50),@defaultelement varchar(50)
set @user='tom'
set @Propertyvalue='she'
set @defaultelement='比子'
exec 填充使用者谓词 @user,@Propertyvalue,@defaultelement
select * from ##tom谓词表打印的信息如下:
insert into ##tomN谓词表(Property,Propertyvalue,defaultelement) VALUES('name','she','婴子')
讯息2812,层级16,状态62,程序填充用户谓词,行13
找不到预存程序'insert into ##tomN谓词表(Property,Propertyvalue,defaultelement) VALUES('name','she','比子')'。
是我哪部分的语法有错吗? 请各位先进指教

解决方案 »

  1.   

    打印的信息如下才對:insert into ##tomN謂詞表(Property,Propertyvalue,defaultelement) VALUES('name','she','比子')
    訊息 2812,層級 16,狀態 62,程序 填充使用者謂詞,行 13
    找不到預存程序 'insert into ##tomN謂詞表(Property,Propertyvalue,defaultelement) VALUES('name','she','比子')'。
      

  2.   

    然后我直接复制打印出来的sql命令insert into ##tomN谓词表(Property,Propertyvalue,defaultelement) VALUES('name','she','比子')下到SQL中直接执行 它有正常的存进数据 但为何会有上面那个找不到预存程序的错误出现呢?
      

  3.   


    --还要保证的的临时表##tom谓词表已经存在
    exec(@sql)