寻找创建一些动态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'。
答案 0 :(得分:2)
尝试
EXECUTE sp_executesql @DynamicSQL2
而不是
EXEC @DynamicSQL2