删除表附近的语法不正确

时间:2016-10-18 07:46:36

标签: sql-server tsql

我想编写以下SQL查询,但是使用drop table @temp和语法时出现错误的语法错误 创建表@temp,为什么会这样? (使用SQL Server 2015)

DECLARE @temp NVARCHAR(10)
SET @temp='sth'
IF OBJECT_ID(@temp, 'U') IS NOT NULL 
DROP TABLE  @temp
CREATE TABLE @temp

2 个答案:

答案 0 :(得分:1)

回答问题为什么,这是一个很久以来的句法惯例 DROP语句如下:

    DROP TABLE MyTable

这样:

    DROP TABLE 'MyTable'

MyTable是标识符,不引用SQL中的标识符。因为它不使用引号,所以它不接受变量。

还要与WHERE子句进行比较:

    WHERE MyCol = 'abc'
    -- MyCol is not quoted because it is an identifier.
    -- 'abc' is quoted because it is a value, and so it can be replaced by a variable.

答案 1 :(得分:0)

试试这个

IF OBJECT_ID('TEMPDB..#TEMP) IS NOT NULL 
    DROP TABLE #TEMP;