请问一个存储过程的问题。怎么把传入参数作为Sql语句所查表的表名。
我有以下存储过程:总是提示:
必须声明变量 '@name'。
第 7 行: ')' 附近有语法错误。
CREATE PROCEDURE ImportBaseDataQT
@name varchar(100)
AS
DECLARE @ErrorVar int
BEGIN TRANSACTION
insert into VSites (地点) select distinct 地点 from @name where (地点 not in (select * from VSites))
insert into VLocations (地点,位置) select 地点,位置 from @name where (地点 not in (select * from VSites))
SELECT @ErrorVar = @@error
IF (@ErrorVar <>0)
BEGIN
ROLLBACK TRANSACTION
RETURN 1
END
ELSE
COMMIT TRANSACTION
RETURN 0
GO
但是当我不用传入参数@name,而是换成表名的时候,就没有语法错误。请问该怎么解决?因为我要的表名是个临时表,表的名字是会变得。