当前位置: 首页 > 面试题库 >

DROP PROCEDURE引发语法错误

白修谨
2023-03-14
问题内容

我有一个#temp表,其中有存储过程的名称。

DECLARE @object VARCHAR(200)
SET @object = (SELECT Top 1 Te.[this Object...] From #Temp Te)

IF OBJECT_ID(@object) IS NOT NULL
    DROP PROCEDURE @object

但是在最后一步,我得到了错误

‘@object’附近的语法不正确。

是因为@object类型VARCHAR还是什么?

这是针对SQL Server 2012


问题答案:

你不能那样做。您需要使用动态sql。就像是 :

DECLARE @object NVARCHAR(200)
DECLARE @sql NVARCHAR(max)
SET @object = (SELECT Top 1 Te.[this Object...] From #Temp Te)
IF OBJECT_ID(@object) IS NOT NULL
BEGIN
    SET @sql = 'DROP PROCEDURE ' + @object
    sp_executesql @sql
END


 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : MySQLSyntaxErrorException在“?”附近 尝试执行PreparedStatement时 (2个答案) 5年前关闭。 我使用PreparedStatements准备查询,当我使用condition参数对查询进行硬编码时,它运行良好。 但如果从setString()方法传递参数,则会抛出错误。 在错误日志中,我的查询上方看起来不错。 P

  • 我的语句似乎抛出了语法错误。我已经阅读了语句应该如何编写(以及脚本中的其他语句没有问题),因此我不确定为什么会有问题。 <代码>

  • 我有一个程序,当一个按钮被点击时,radiobuttons改变文本。我还希望所有的radiobuttons在按钮被按下后都被取消选择。我的OnClickListener中有以下代码: 我收到以下错误:.ClearCheck()上的“无法解析方法”。 我哪里错了?

  • sql server存储过程如下所示: 我可以通过以下方式在SSMS中成功运行它 我试图用SQLServer2012Dealion替换SQLServerDealion,但出现了相同的错误。

  • 问题内容: 当我在终端上键入以启动REPL时,它将引发此错误 当我敲击并键入时,它再次抛出该错误 我正在使用并给 问题答案: 更新到新的Scala版本(2.10.3+)或将Java降级到Java 6/7。正如您在输出中所看到的,2.9.2在引入Java 8()之前就已经很久了,因此它们不能很好地协同工作。 这个重复的问题包含有关ubuntu的Java降级的确切说明。

  • 问题内容: 我正在尝试在 Python中* 运行 PhantomJS 驱动程序,但出现错误。我读过我应该将整个路径作为参数传递,但这没有帮助。 * 这是代码: 错误: 你知道我在做什么错吗? 问题答案: 用原始字符串创建路径,并添加“ r”: