日期:2014-05-17  浏览次数:20480 次

使用预存程序插入数据到临时表的问题
小弟写了一个预存程序是要插入数据到临时表内的
但不晓得为何执行会无法通过 
有打印出我要插入临时表的SQL命令

以下是我编写的SQL语法

SQL code

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 @sql

declare @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','比子')'。
是我哪部分的语法有错吗? 请各位先进指教

------解决方案--------------------
exec动态语句是要用括号的