DECLARE @Ctb VARCHAR(10)
SET @Ctb='hhh'
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[hhh]') AND type in (N'U'))
--为何使用下面一句代替上面一句就会出错?如何修改
--EXEC('IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID([dbo].['+@Ctb+']) AND type in (N''U''))')
EXEC('DROP TABLE '+ @Ctb)
--在线等高手指导~
后面有语句啊:
EXEC('DROP TABLE '+ @Ctb)
那是在exec之外的
--使用以下语句:
EXEC('IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID([dbo].['+@Ctb+']) AND type in (N''U'')) drop table '+@ctb)
--提示错误信息:
--无法绑定由多个部分组成的标识符 "dbo.hhh"。
没加单引号object_id()方法中
EXEC('IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(''[dbo].['+
@Ctb+']'') AND type in (N''U'')) drop table '+@ctb)