当前我具有以下功能
CREATE FUNCTION dbo.CurrentEmpCount()
RETURNS DECIMAL
AS
BEGIN
DECLARE @RetCount DECIMAL, @Return DECIMAL;
SELECT @RetCount = COUNT(*)
FROM Employee
GROUP BY DepartmentID
SET @Return = @RetCount
RETURN @Return
END
[当我尝试通过alter将其添加到部门表时,出现错误:
多部分标识符“ dbo.CurrentEmpCount”无法绑定。
ALTER TABLE Department
ADD WorkStations AS dbo.CurrentEmpCount
GO
有人可以建议任何尝试的方法吗?在我看到的示例中,他们的操作与此类似。
您的功能应具有DepartmentID
的输入。然后计算该DepartmentID
CREATE FUNCTION dbo.CurrentEmpCount
(
@DepartmentID INT -- assuming that ID is INT
)
RETURNS INT -- count() returns an INTEGER not DECIMAL
AS
BEGIN
DECLARE @RetCount INT
SELECT @RetCount = COUNT(*)
FROM Employee
WHERE DepartmentID = @DepartmentID
RETURN @RetCount
END
然后您的部门表应该如下
ALTER TABLE Department
ADD WorkStations AS dbo.CurrentEmpCount(DepartmentID)
您需要传递表DepartmentID
的Department
或者,您可以只为VIEW
表创建一个Department
注意:如果要存储带小数位的数字,请使用DECIMAL
或NUMERIC
。从Doc Numeric data types that have fixed precision and scale