在SQL Server中使用存储过程,我试图将值放入几个条件变量中。我怀疑问题是这些变量是计数/总和,就像两个不同的表一样。
例如:
CREATE PROC [dbo].[GetTrends]
AS
DECLARE @N_NE INT
DECLARE @BB_NE
DECLARE @date DATETIME
BEGIN
SELECT @date = GETDATE();
SELECT @N_NE = SUM(CASE WHEN a.STATUS = 'Active' AND b.REGION = 'NE' THEN 1 ELSE 0 END) +
SUM(CASE WHEN a.STATUS = 'Ready' AND b.REGION = 'NE' THEN 1 ELSE 0 END)
FROM dbo.FOO as a INNER JOIN dbo.BAR as b on a.ID = b.ID;
SELECT @BB_NE = SELECT COUNT(*) FROM dbo.ANOTHERTABLE
INSERT INTO dbo.Trends (Date) VALUES (@date);
UPDATE dbo.Trends SET N_NE = (@N_NE + @BB_NE) WHERE DATE = @date;
END;
单个SELECT
查询可以自行运行,但当我尝试CREATE
PROC
时,我会遇到以下形式的几个错误:
Msg 4104,Level 16,State 1,Procedure My Proc,Line 51
无法绑定多部分标识符“a.STATUS” 消息4104,级别16,状态1,程序My Proc,Line 51
无法绑定多部分标识符“b.REGION”。
等等......
有没有办法绕过这个/我是否犯了一个可怕的错误?谢天谢地。
答案 0 :(得分:2)
这是不可能的。
1.确保您的两个连接都在同一服务器/数据库中
2.停止所有可以DDL你的桌子的服务
3.尝试直接SQL和通过SP包含仅相同(复制/粘贴)查询。他们将返回相同的结果。