我想编写以下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
答案 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;