【发布时间】:2014-04-02 01:02:05
【问题描述】:
我在下面有一个小存储过程。
我将表名作为存储过程的输入参数,因此我打算将数据插入临时表并显示相同的数据。这只是我的项目存储过程的一个小代码块。
当我编译下面的内容时,它将select语句中的参数视为表变量并将错误抛出为:
必须声明表变量“@TableName”。
SQL:
CREATE PROCEDURE xyz @TableName Varchar(50)
AS
BEGIN
SELECT TOP 10 * INTO #Temp_Table_One
FROM @TableName
SELECT * FROM #Temp_Table_One
END
【问题讨论】:
-
他们已经为您提供了解决方案,但请注意,这通常是一个坏主意,您不应该以这种方式编写代码,以避免编写多个 proc。在你读透这篇文章之前不要写动态sql:sommarskog.se/dynamic_sql.html
标签: sql-server stored-procedures table-variable