为什么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为空,我想要整个表
否则,只给我 @checkvar = some 的值
编辑:该列是 varchar,而不是 int。
您可以使用以下命令创建具有所需结构的空临时表WHERE 1=0
。然后用你的原始代码插入所需的记录
SELECT colx INTO #temp1
FROM @tbl
WHERE 1 = 0 // this is never true
IF @checkvar IS NULL
BEGIN
INSERT INTO #temp1 (colName)
SELECT colx FROM @tbl
END
ELSE
BEGIN
INSERT INTO #temp1 (colName)
SELECT colx
FROM @tbl
WHERE colx = @checkvar
END
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)