【发布时间】:2018-08-23 21:04:19
【问题描述】:
我在 SQL Server 2008 上使用动态 SQL 从一行中选择指定的列,但我不断收到以下错误:
无效的对象名称“表单”
我的代码如下:
DECLARE @SQL varchar(MAX)
SET @SQL = 'select
[City],[Place]'
+
'
from Form where [Age:] = 20'
EXEC (@SQL)
我也尝试使用+ QUOTENAME(@Table) 并将@Table 声明为nvarchar(MAX),但无法定义@Table 基本上是我数据库中的Form 表。
当我检查之前的examples 时,人们能够以相同的方式从表中选择列而不会出错,那么我得到错误的原因可能是什么?我应该使用@QUOTENAME 函数吗?
我们将不胜感激。
【问题讨论】:
-
你描述@table?您的查询在哪里?
-
Form是什么?这是你的表名吗? -
您是否检查过您是否有名称为
Form的表? -
首先,我确定我确实有一个名为
Form的表,因为我可以对其进行基本操作。而且我还删除了@Table 声明,因为我无法将@Table 设置为数据库中的表单表。 -
执行
PRINT @SQL,复制结果并粘贴到新的查询窗口并执行。有什么错误吗?
标签: sql sql-server sql-server-2008