sql - 必须声明标量

标签 sql sql-server-2008

我的函数中有三个单独的表变量, 其中 1 个没有给我任何错误,另外两个是, 我没有发现它们之间有任何不同的语法,但也许我需要更多的咖啡因。

我收到的错误是

Must declare the scalar variable "@DispoTable".

DECLARE @CIDdisp INT

DECLARE @DispoTable TABLE 
(
    CaseID INT,
    Code INT,
    Description VARCHAR(150)
)
--Gather Data From filter
SELECT @CIDdisp = CaseID, @Code = Code, @Description = Description
FROM fnRecidFilter3(@CaseID,01,01)
-- Insert into Temp table
INSERT INTO @DispoTable (CaseID, Code, Description)
VALUES (@CIDdisp, @Code, @Description)
-- Merge the Temp Table with RecidReport Table
INSERT INTO RecidReport(Code, Description)
SELECT Code, Description 
FROM @DispoTable
WHERE (@DispoTable.CaseID) = CaseID

我有什么遗漏的吗?

最佳答案

你不能说:

WHERE (@DispoTable.CaseID) = CaseID

您需要使用别名:

FROM @DispoTable AS d
WHERE d.CaseID = CaseID

但是这个条款无论如何都没有意义。您的意思是在这里使用变量吗?也许:

FROM @DispoTable AS d
WHERE d.CaseID = @CIDdisp

关于sql - 必须声明标量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11314433/

相关文章:

SQL返回重复结果

.net - 可以使用一个 SqlCommand 进行多个查询吗?

mysql - 使用 MySQL 记录所有表上的所有事件

tsql - 我们如何在 SQL 中使用前缀作为零?

sql-server - 如何使用唯一标识复制表 SQL Server 2008 中的所有值

sql-server - SQL Server : query to get multiple results in one field

mysql - SQL - 在一个案例中计算两个字段

mysql - Full Outer Join 在 MySql 中不起作用

c# - 如何使用 C# 在 sql 中更快地更新数据

sql-server-2008 - 存储 TOTP 的 key