首页 > 解决方案 > SQL Server 存储过程:必须声明标量变量

问题描述

DECLARE @occurrences TABLE (Occurrences int)
BEGIN
    SET @occurrences = (SELECT Occurrences FROM [Data])
END

为什么这无法执行?我想将存储过程中给定表的所有列读入一个表,以便稍后更新另一个表。

这从根本上是错误的吗?

SQL Server 抛出的确切错误是:

必须声明标量变量“@occurrences”

标签: sql-serverstored-procedures

解决方案


Table变量不同于scalar变量。所以你需要

DECLARE @occurrences TABLE (Occurrences int)
BEGIN
    insert @occurrences 
    SELECT Occurrences FROM [Data]
END

推荐阅读