SQL Server存储过程和变量取决于两个表
使用SQLServer中的存储过程,我试图将值放入几个条件变量中。我怀疑问题在于,这些变量是以两个不同表为条件的类似计数/求和的值 例如:SQL Server存储过程和变量取决于两个表,sql,sql-server,tsql,stored-procedures,Sql,Sql Server,Tsql,Stored Procedures,使用SQLServer中的存储过程,我试图将值放入几个条件变量中。我怀疑问题在于,这些变量是以两个不同表为条件的类似计数/求和的值 例如: 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 = 'A
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
查询本身运行良好,但当我尝试创建过程时,会出现以下形式的错误:
Msg 4104,16级,状态1,程序我的程序,第51行
无法绑定多部分标识符“a.STATUS”。
Msg 4104,16级,状态1,程序我的程序,第51行
无法绑定多部分标识符“b.REGION”
等等
有没有办法解决这个问题/我是否犯了一个可怕的错误?非常感谢。这是不可能的。
1.确保两个连接都连接到同一服务器/数据库
2.停止所有可以DDL您的表的服务
3.尝试使用直接SQL和仅包含相同(复制/粘贴)查询的via SP。它们将返回相同的结果。您可以发布不起作用的代码,而不是发布工作代码?您确实需要显示创建过程
代码。如果SELECT
本身工作,那么它不应该抛出该错误later@user1893148但是你也可能没有发布error@user1893148如果这些表中存在这些列,则不会出现该错误。因此,您正在删除已发布代码上的错误,这是不可能的。发布失败的实际代码,而不是过程中其他地方的模糊表示。