为什么SQL Server坚持认为临时表已经存在!一个或另一个将会发生! ,所以永远不会这样。
declare @checkvar varchar(10)
declare @tbl TABLE( colx varchar(10) )
set @checkvar ='a'
INSERT INTO @tbl (colx) VALUES('a')
INSERT INTO @tbl (colx) VALUES('b')
INSERT INTO @tbl (colx) VALUES('c')
INSERT INTO @tbl (colx) VALUES('d')
IF @checkvar is null select colx INTO #temp1 FROM @tbl
ELSE select colx INTO #temp1 FROM @tbl WHERE colx =@checkvar
错误是:数据库中已经有一个名为“#temp1”的对象。
有没有解决这个问题的优雅方法?
如果@checkvar为null,我想要整个表
否则,只给我其中@checkvar =某物的值
编辑:该列是varchar,而不是int。
最佳答案
您不能只重写语句吗?
SELECT colx INTO #temp1 FROM @tbl WHERE (@checkvar IS NULL) OR (colx = @checkVar)