IF (@Track = 'SearchSelect')
BEGIN
IF(@limitedAccess = 'true')
BEGIN
SELECT CusLst.CustomerId, MAX(CusCon.CustomerContactId) AS CustomerContactId
INTO #CustomerList1
FROM CustomerList CusLst
LEFT JOIN CustomerContact CusCon ON CusLst.CustomerId = CusCon.CustomerId
INNER JOIN CustomerUser ON CusLst.CustomerId = CustomerUser.CustomerId
WHERE CustomerUser.UserId = @userId
GROUP BY CusLst.CustomerId
END
ELSE
BEGIN
SELECT CusLst.CustomerId, MAX(CusCon.CustomerContactId) AS CustomerContactId
INTO #CustomerList1
FROM CustomerList CusLst
LEFT JOIN CustomerContact CusCon ON CusLst.CustomerId = CusCon.CustomerId
GROUP BY CusLst.CustomerId
END
由于customerList1已存在,因此导致错误。如果我想根据存储过程中的条件填充临时表怎么办?
答案 0 :(得分:0)
在开始工作之前添加此代码
IF Object_id('tempdb..#CustomerList1') IS NOT NULL
BEGIN
DROP TABLE #CustomerList1
END
答案 1 :(得分:0)
编辑:
您可能已创建临时表,删除您的创建表或使用
INSERT INTO #customerlist1(columns)
SELECT columns
FROM customerlist
因为这个
SELECT CusLst.CustomerId, MAX(CusCon.CustomerContactId) AS CustomerContactId
INTO #CustomerList1
FROM CustomerList CusLst
LEFT JOIN CustomerContact CusCon ON CusLst.CustomerId = CusCon.CustomerId
INNER JOIN CustomerUser ON CusLst.CustomerId = CustomerUser.CustomerId
WHERE CustomerUser.UserId = @userId
GROUP BY CusLst.CustomerId
创建一个新的临时表,这就是它抛出错误的原因。
答案 2 :(得分:0)
首先检查您的临时表是否存在于数据库中.IF存在意味着删除临时表,然后创建新表。
IF EXISTS(SELECT 1 FROM tempdb.dbo.sysobjects WHERE xtype in ('U') AND id =
object_id(N'tempdb..#CustomerList1') )
DROP TABLE #CustomerList1;