日期:2014-05-19  浏览次数:20459 次

存储过程如何使用的动态表名,请帮助改一下!
CREATE   PROCEDURE   [InsertRoad]  
  @TableName[varchar](8),
  @sTitle_p   [varchar](50),
  @sText_p   [text]

AS   INSERT   INTO     [@TableName]  
  ([sTitle],
  [sText])    
VALUES  
(@sTitle_p,
  @sText_p)
GO
================================================
想要在上面这个插入数据的存储过程中使用参数做表的名字,现在的写法是错误的,应该怎么改?

------解决方案--------------------
decalare @sql nvarchar(4000)
set @sql= 'INSERT INTO [ '+@TableName+ ']
([sTitle],
[sText])
VALUES
( '+@sTitle_p+ ', '+
@sText_p+ ') '

EXECUTE SP_EXECUTESQL @SQL