【发布时间】:2018-05-07 22:05:21
【问题描述】:
我将表变量声明为APTDAPCO 是用户定义的类型
DECLARE @APTDAPCO APTDAPCO
INSERT INTO @APTDAPCO
SELECT
APTD.APCo,
APTD.Mth,
APTD.APTrans,
APTD.APLine,
APTD.Amount,
APTD.PayType,
APTD.PaidDate,
APCO.RetPayType
FROM
[Viewpoint].[dbo].[APTD] WITH (NOLOCK)
LEFT JOIN
[Viewpoint].[dbo].[APCO] WITH (NOLOCK) ON [APCO].[APCo] = [APTD].[APCo]
WHERE
APTD.APCo = 1
这是在一个存储过程中。
当我尝试在 select 语句中使用这个表变量时
SELECT *
FROM HQCO
LEFT JOIN @APTDAPCO ON HQCO.CO = @APTDAPCO.APCo
我的存储过程中不断出现编译错误
消息 137,级别 16,状态 1,过程 lc_PM11127_CommitmentReport_Optimize,第 80 行 [批处理开始第 9 行]
必须声明标量变量“@APTDAPCO”。
我做错了什么?
【问题讨论】:
-
在同一个存储过程中或在同一个查询窗口中一次执行。有用吗?
-
您必须将变量声明为表格 - 见下文
标签: sql sql-server variables