首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储过程将变量值设置为单个列

存储过程将变量值设置为单个列
EN

Stack Overflow用户
提问于 2012-11-29 19:27:01
回答 3查看 19.3K关注 0票数 2

我有一个Table structure as

代码语言:javascript
复制
Empid Int,
EmpName Nvarchar,
Salary Numeric(18,2),
DeptNumber

我有一个带2个参数的函数。作为:

代码语言:javascript
复制
ALTER Function [dbo].[GetTotalPrice] 
(
@Salary int,
@DeptNumber int
)
RETURNS int
AS
BEGIN
Declare @TotalSalary int
Select @TotalSalary=@Salary+@DeptNumber 
return @TotalSalary
End

我的问题是,我应该如何开发一个存储过程,该存储过程获取存储过程中的每个salaryDeptNumber,并将其发送给函数并计算新的工资。我已经尝试开发了几个SP,但无法获得任何可能的解决方案。

代码语言:javascript
复制
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

当我尝试执行上面的代码时,它给出了以下错误:

代码语言:javascript
复制
A SELECT statement that assigns a value to a variable must not be combined with data-retrieval operations.
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-29 19:39:34

您使用相同的SELECT将数据放入变量并从存储过程返回结果集,因此不能在同一条语句中同时执行这两项操作。

代码语言:javascript
复制
ALTER Proc [dbo].[S7] 
AS
BEGIN
Select EmpId,EmpName, Salary=dbo.GetTotalPrice(salary,DeptNumber) from dbo.EmpInf
end
票数 2
EN

Stack Overflow用户

发布于 2012-11-29 19:34:19

尝尝这个

代码语言:javascript
复制
 Select EmpId,EmpName,  
 salary=@salary,DeptNumber=@DeptNo,Salary=dbo.GetTotalPrice(@salary,@DeptNo) 
票数 0
EN

Stack Overflow用户

发布于 2012-11-29 19:41:00

错误很明显,您可以结合使用这两种方法

代码语言:javascript
复制
Declare @salary int
Declare @DeptNo int,
   @EmpId int, @EmpName varchar(50),
   @Salary int


Select @EmpId=EmpId, @EmpName=EmpName, @salary=salary,@DeptNo=DeptNumber,@Salary=dbo.GetTotalPrice(1000,'XXX') 
from dbo.EmpInf

Select @EmpId As EmpID, @EmpName As EmpName, @Salary As Salary

代码语言:javascript
复制
Select EmpID, EmpName, Salary, dbo.GetTotalPrice(1000,'XXX') from dbo.EmpInf

您可以将这两者结合起来,将@XXX和XXX放在同一个Select查询中。

你要么做Select @X = value FROM table,要么做Select value From Table,而不是两者都做

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13624743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档