我有一个表结构
为
Empid Int,
EmpName Nvarchar,
Salary Numeric(18,2),
DeptNumber
我有一个需要 2 个参数的函数。如:
ALTER Function [dbo].[GetTotalPrice]
(
@Salary int,
@DeptNumber int
)
RETURNS int
AS
BEGIN
Declare @TotalSalary int
Select @TotalSalary=@Salary+@DeptNumber
return @TotalSalary
End
我的查询是我应该如何开发一个存储过程,这需要
存储过程中的每个 salary
和 DeptNumber
并将其发送到函数并计算新的 Salary。我尝试过开发几个SP,但无法得到任何可能的解决方案。
ALTER Proc [dbo].[S7]
AS
BEGIN
Declare @salary int
Declare @DeptNo int
Select EmpId,EmpName, @salary=salary,@DeptNo=DeptNumber,Salary=dbo.GetTotalPrice(@salary,@DeptNo)
from dbo.EmpInf
end
当我尝试执行上述代码时,出现以下错误:
A SELECT statement that assigns a value to a variable must not be combined with data-retrieval operations.
最佳答案
您使用相同的 SELECT
将数据放入变量并从存储过程返回结果集,但不能在同一语句中执行这两项操作。
ALTER Proc [dbo].[S7]
AS
BEGIN
Select EmpId,EmpName, Salary=dbo.GetTotalPrice(salary,DeptNumber) from dbo.EmpInf
end
关于sql - 存储过程 将变量值设置为单个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13624743/