Microsoft SQL - 转移员工的存储过程
Microsoft SQL - Stored Procedure to transfer an employee
我想创建一个将员工从当前团队转移到另一个团队的存储过程。到目前为止,我已经这样做了:
CREATE OR ALTER PROC pr_EmployeeTeam @IDTeam1 int, @IDTeam2 int
AS
BEGIN
DECLARE @NIC int
SELECT @IDTeam1 = IDTeam from StuffTeams
SELECT @IDTeam2 = IDTeam from StuffTeams
UPDATE StuffTeams SET IDTeam = @IDTeam1 WHERE NIC = @NIC
UPDATE StuffTeams SET IDTeam = @IDTeam2 WHERE NIC = @NIC
END
EXEC pr_EmployeeTeam 2,5
还有我的StuffTeam
table:
CREATE TABLE StuffTeams(
IDStuffTeam nvarchar(30) NOT NULL,
IDTeam int NOT NULL,
NIC int NOT NULL,
DateStart date NOT NULL,
DateFinish date NOT NULL,
CONSTRAINT PK_Stuff PRIMARY KEY (IDStuffTeam),
CONSTRAINT FK_sTeam FOREIGN KEY (IDTeam) REFERENCES Teams (IDTeam),
CONSTRAINT FK_sNIC FOREIGN KEY (NIC) REFERENCES Employees (NIC),
)
在 StuffTeams
内部我有 30 个值但是当我执行代码时说
0 rows affacted
非常感谢
更新
CREATE PROC sp_UpdateTeam
@TeamID int,
@NIC int
AS
BEGIN
update StuffTeams SET IDTeam = @TeamID
WHERE NIC = @NIC
END
EXEC sp_UpdateTeam 5,54321
这解决了我的问题!谢谢
Based upon your requirement, I have updated your proc as shown below:
CREATE OR ALTER PROC pr_EmployeeTeam @IDTeam1 int, @IDTeam2 int
AS
BEGIN
DECLARE @NIC int
SELECT @NIC = IDTeam from StuffTeams WHERE IDTeam = @IDTeam1
UPDATE StuffTeams SET IDTeam = @IDTeam2 WHERE NIC = @NIC
END
执行 pr_EmployeeTeam 2,5
我想创建一个将员工从当前团队转移到另一个团队的存储过程。到目前为止,我已经这样做了:
CREATE OR ALTER PROC pr_EmployeeTeam @IDTeam1 int, @IDTeam2 int
AS
BEGIN
DECLARE @NIC int
SELECT @IDTeam1 = IDTeam from StuffTeams
SELECT @IDTeam2 = IDTeam from StuffTeams
UPDATE StuffTeams SET IDTeam = @IDTeam1 WHERE NIC = @NIC
UPDATE StuffTeams SET IDTeam = @IDTeam2 WHERE NIC = @NIC
END
EXEC pr_EmployeeTeam 2,5
还有我的StuffTeam
table:
CREATE TABLE StuffTeams(
IDStuffTeam nvarchar(30) NOT NULL,
IDTeam int NOT NULL,
NIC int NOT NULL,
DateStart date NOT NULL,
DateFinish date NOT NULL,
CONSTRAINT PK_Stuff PRIMARY KEY (IDStuffTeam),
CONSTRAINT FK_sTeam FOREIGN KEY (IDTeam) REFERENCES Teams (IDTeam),
CONSTRAINT FK_sNIC FOREIGN KEY (NIC) REFERENCES Employees (NIC),
)
在 StuffTeams
内部我有 30 个值但是当我执行代码时说
0 rows affacted
非常感谢
更新
CREATE PROC sp_UpdateTeam
@TeamID int,
@NIC int
AS
BEGIN
update StuffTeams SET IDTeam = @TeamID
WHERE NIC = @NIC
END
EXEC sp_UpdateTeam 5,54321
这解决了我的问题!谢谢
Based upon your requirement, I have updated your proc as shown below:
CREATE OR ALTER PROC pr_EmployeeTeam @IDTeam1 int, @IDTeam2 int
AS
BEGIN
DECLARE @NIC int
SELECT @NIC = IDTeam from StuffTeams WHERE IDTeam = @IDTeam1
UPDATE StuffTeams SET IDTeam = @IDTeam2 WHERE NIC = @NIC
END
执行 pr_EmployeeTeam 2,5