0

我有带有RowId, PersonId, ActivityTypeId,列的表格GroupId,我选择了上面的列,它工作正常。

上表数据位 上表数据 可以有类似的数据,相同`PersonId的可以有多个activityTypeId,activityTypeId 有GroupId。像这样的东西

RowId  PersonId ActivityTypeId GroupId
1       20          1             2
2       20          2             2
3       20          7             8

现在我的问题是,如果特别是PersonId,同一组中有超过 3 个条目。我希望在手动选择和添加新条目时删除该人的所有条目。这可以在存储过程中完成吗?

任何帮助将不胜感激。

抱歉,如果标题没有意义。

4

1 回答 1

1

存储过程将是要走的路,因为您要对不同的表进行多次调用。

需要明确的是,您试图删除基于特定的所有条目PersonID,然后从SELECT语句中添加一个?这可以使用以下语法来完成:

CREATE PROC my_sp 
@deletedID int, -- This is the ID of the person you are trying to delete
@insertedID int -- This is the ID of the person you are trying to add
AS
BEGIN
SET NOCOUNT ON -- This will ensure your select statement is not interefered

DELETE FROM Table WHERE PersonID = @deletedID

INSERT INTO Table
SELECT *
FROM Table2
WHERE PersonID = @insertedID
END

要调用此存储过程,只需使用EXECUTE带参数的语句:
EXEC my_sp 0123, 5555其中 0123 是已删除人员的 ID,5555 是添加人员的 ID。

如果您想手动将数据传递给INSERT INTO而不是使用SELECT语句,那么您将不得不添加更多参数并使用

INSERT INTO Table
VALUES(@param1, @param2, @param3, ... etc)

这是一个使用链接,INSERT INTO它也可能有所帮助:http ://www.w3schools.com/sql/sql_insert.asp

于 2013-07-18T17:43:16.097 回答