ALTER PROCEDURE dbo.updateadmin
(
@ReportRead char(10),
@Date date,@EmpName varchar(50),
@Subject nchar(50)
)
AS
insert into Emp_ReportUpdate (ReportRead,[Date],EmpName,Subject)
values(@ReportRead,@Date,@EmpName,@Subject)
RETURN
这是我的程序,在@EmpName
我需要用作select语句,以便从另一个表中获取数据并在@EmpN
中获取。如果任何人有一个较短的方法,请指导我。
答案 0 :(得分:1)
INSERT..SELECT。
当然,你可以自己解决剩下的问题,因为我们没有这些信息......
ALTER PROCEDURE dbo.updateadmin
(
@ReportRead char(10),@Date date,@EmpName varchar(50),@Subject nchar(50)
)
AS
insert into Emp_ReportUpdate (ReportRead,[Date],EmpName,Subject)
select @ReportRead, @Date, someOtherCol, @Subject
from myothertable
where somecol = @EmpName
RETURN
答案 1 :(得分:0)
ALTER PROCEDURE dbo.updateadmin
(
@ReportRead char(10), @Date date, @EmpName varchar(50), @Subject nchar(50)
) AS
SELECT @EmpName = somecol FROM OTHERTABLE
insert into Emp_ReportUpdate
(ReportRead, [Date], EmpName, Subject)
VALUES
(@ReportRead, @Date, @EmpName, @Subject)
RETURN
答案 2 :(得分:0)
您也可以使用 CTE 。如果您的存储过程可能变得更复杂并且此查询可能会被多次使用,这在将来会有所帮助。因此,为了摆脱重复,我们可以使用CTE。
ALTER PROCEDURE dbo.updateadmin
(
@ReportRead char(10),
@Date date,
@EmpName varchar(50),
@Subject nchar(50)
)
AS
With CTE
AS
(
Select YourColumnName from YourTableName Where YourColumnName = @EmpName
)
insert into Emp_ReportUpdate (ReportRead,[Date],EmpName,Subject)
Select @ReportRead, @Date, YourColumnName, @Subject
From CTE
RETURN