Sql server 我们可以根据存储过程中的某些条件添加多个update语句吗
我想在mssql中创建一个存储过程。根据输入参数,应更新相应的表。例如Sql server 我们可以根据存储过程中的某些条件添加多个update语句吗,sql-server,stored-procedures,sql-update,Sql Server,Stored Procedures,Sql Update,我想在mssql中创建一个存储过程。根据输入参数,应更新相应的表。例如 CREATE PROCEDURE sp_submitex AS @type int, @ex_cde varchar(10) BEGIN IF @type = 2 THEN UPDATE t1 SET code = @ex_cde ELSE IF @type = 3 THEN UPDATE t2 SET code = @ex_cd
CREATE PROCEDURE sp_submitex
AS
@type int,
@ex_cde varchar(10)
BEGIN
IF @type = 2 THEN
UPDATE t1
SET code = @ex_cde
ELSE IF @type = 3 THEN
UPDATE t2
SET code = @ex_cde
ELSE IF @type = 7 THEN
UPDATE t3
SET code = @ex_cde
t1、t2、t3是三个不同的表
是否可以在存储过程中实现上述要求(我在IF-else语句中提到过)
不确定这是否适用于case语句。旁注:存储过程不应使用sp
前缀。微软已经这样做了,而且你确实有可能在将来的某个时候发生名称冲突。最好只是简单地避免使用sp.
并使用其他东西作为前缀,或者根本不使用前缀!是的,您应该能够做到这一点-删除,然后
尽管-不需要/不允许。不,一个CASE
表达式在这里不能帮助您-它是一个可以返回单个原子值(在许多选项中)的表达式-但是它不能用于根据条件执行代码块。小细节:AS
需要位于参数之后(就在开始之前),如果您确实想在If
/ELSE
中执行多个语句,那么您需要使用开始
和结束
,而不是然后
(如marc_所述)。只需删除,然后
,再添加一个结束
,并更正过程的初始声明即可。您需要使用IF
而不是CASE
<代码>大小写
是一个表达式,而不是控制流语句。感谢大家的投入。让我试着做上面提到的更改。