【发布时间】:2016-11-29 20:25:47
【问题描述】:
寻找创建一些动态 SQL 以删除表(如果存在)的方法。但是我似乎无法使语法正确。这是到目前为止的查询(为安全起见重命名字段)
DECLARE @TableNameNew NVARCHAR(MAX)
DECLARE @DynamicSQL2 NVARCHAR(MAX)
SET @TableNameNew = (SELECT 'tbl1_' + REPLACE(StaffCode,'.','') AS TableName
FROM tblEmployee WHERE (PCLogin = REPLACE(SYSTEM_USER, 'DOMAIN\', '')))
SET @DynamicSQL2 = 'IF OBJECT_ID(' + '''' + @TableNameNew + '''' + +','+'''U''' + ') IS NOT NULL DROP TABLE ' + @TableNameNew
EXEC @DynamicSQL2
这会返回一个错误:
找不到存储过程 'IF OBJECT_ID('tbl1_ghewitt','U') IS NOT NULL DROP TABLE tbl1_ghewitt'。
【问题讨论】:
标签: sql-server-2008-r2 dynamic-sql