Sql server 在MS SQL存储过程中实现if-else语句

Sql server 在MS SQL存储过程中实现if-else语句,sql-server,tsql,Sql Server,Tsql,使用Sql Server 2008 r2: begin insert tablename1(param1, param2)values(@param1,@param2) if(@param1=="2222" && @param2<5) set @param2 = @param2 + 1 update tablename2 set param2=@param2 where param1=@param1 end end 开始 插入

使用Sql Server 2008 r2:

begin

    insert tablename1(param1, param2)values(@param1,@param2)

    if(@param1=="2222"  && @param2<5)

    set @param2 = @param2 + 1

    update tablename2 set param2=@param2 where param1=@param1

end

end
开始
插入tablename1(param1,param2)值(@param1,@param2)
如果(@param1==“2222”&&&@param2T-SQL有一个。对于条件语句,请使用与
WHERE
子句相同的语法,例如,
而不是
&&
=
而不是
=
和字符串单引号。
如果
需要一条语句;如果要执行一段代码,请将其包装在
开始中结束

在您的情况下,代码可能如下所示:

IF @param1 = '2222' AND @param2 < 5
BEGIN
    ...
END
如果@param1='2222'和@param2<5
开始
...
结束

PS:在搜索SQL Server语法元素时,请在关键字中包含
t-SQL
。例如,在Google中搜索
t-SQL if
时,第一次点击的是SQL Server if-ELSE语法的描述。

假设
@param1
是字符串而
@param2
是数字,请尝试以下操作:

CREATE PROCEDURE [dbo].[procedure_name]
@param1     varchar(50),
@param2     int
AS

begin
    insert into tablename1(param1, param2) values(@param1,@param2)

    if @param1='2222' and @param2 < 5
    begin
        set @param2 = @param2 + 1
        update tablename2 set param2=@param2 where param1=@param1
    end
end
创建过程[dbo]。[PROCEDURE\u name]
@param1 varchar(50),
@参数2 int
作为
开始
将值(@param1,@param2)插入到tablename1(param1,param2)中
如果@param1='2222'和@param2<5
开始
设置@param2=@param2+1
更新tablename2集合param2=@param2,其中param1=@param1
结束
结束

我相信您要问的问题是,如何根据
tablename1
中的值更新
tablename2

UPDATE t2
SET t2.param2= t1.param2 + 1
FROM tablename1 t1
JOIN tablename2 t2 ON t1.param1 = t2.param1
WHERE (t1.param1 = '2222' AND t1.param2 < 5)
更新t2
设置t2.param2=t1.param2+1
来自tablename1 t1
在t1.param1=t2.param1上联接tablename2 t2
式中(t1.param1='2222'和t1.param2<5)

tablename1
中有一条带有
param1='2222'
param2的记录时,此查询将更新
tablename2
。问题是什么?问题是什么?@Panagiotis:user1663380似乎无法找到T-SQL
IF
的正确语法I’我会解决这个问题。或者只是阅读文档。或者在谷歌上搜索上述文档。你是在问“如何根据另一个表中的数据更新一个表?”