【发布时间】:2013-05-14 08:17:22
【问题描述】:
我有这样的桌子
Col1, Col2, Col3, Col4
---- ---- ----
1 0 1 sd
1 0 2 asdas
1 1 1 sd
1 1 2 ads
2 0 1 sad
2 0 2 ds
2 1 1 sad
2 1 2 sad
此表代表我拥有的所有可能性。我需要更新或插入行。如果上表中的一行不存在,我将插入新行。 如果我为 Col1 或 Col2 或 Col3 发送 -1,我需要更新/插入该列的所有变体。
Col1 接受 1 和 2。
Col2 接受 0 和 1。
Col3 接受 1 和 2。
例如:
Col1 = -1, Col2 = 1, Col3 = -1, Col4 = test
我需要更新/插入下一列
Col1, Col2, Col3, Col4
---- ---- ----
1 1 1 test
1 1 2 test
2 1 1 test
2 1 2 test
你能帮我处理存储过程吗?
CREATE PROCEDURE [dbo].[MyStoredProcedure]
(
@Col1 int,
@Col2 int,
@Col3 int,
@Col4 uniqueidentifier
)
【问题讨论】:
-
请问什么平台和版本?另外,当您发送 -1 时,如何选择这些值?在现有值上(它们是否完整?)或来自其他表(这会更有意义)
-
您说“我需要更新/插入下一列”,但示例数据已包含在第一组数据中。这个问题我们无法回答
-
第一个表代表所有可能性。首先你创建表并且表是空的,你调用 sp 和 sp 例如插入 1 行。然后你再次调用 sp,现在你更新 1 行并插入 3 行。然后你删除一行。再次调用 sp 并执行更新/插入。
-
我不知道您在发布问题之前付出了多少努力,但我认为您的问题非常清楚。
标签: sql sql-server stored-procedures