Sql server 靠近'的语法不正确=';存储过程

Sql server 靠近'的语法不正确=';存储过程,sql-server,stored-procedures,Sql Server,Stored Procedures,我正在尝试更改以下存储过程: ALTER PROCEDURE [dbo].[InsertID] @ID_EMP CHAR(11) = '91118800011', @id_station tinyint = 1 as declare @status tinyint declare @comidaid int declare @empid bigint declare @fecha datetime declare @commerceid

我正在尝试更改以下存储过程:

ALTER PROCEDURE [dbo].[InsertID] 
    @ID_EMP CHAR(11) = '91118800011', 
    @id_station tinyint = 1
as
    declare @status tinyint
    declare @comidaid int
    declare @empid bigint
    declare @fecha datetime
    declare @commerceid varchar(10)
    declare @isActive varchar(1)
    declare @isRestricted varchar(1)
    declare @resultado VARCHAR(50)

    if (Isnumeric(REPLACE(REPLACE(REPLACE(@ID_EMP,' ',''),'T-',''), 'C', '')) = 1)
    begin
        set @fecha = getdate()
        set @comidaid = database.tableName3(@fecha)
        --set @empid=cast(substring(@ID_EMP,3,6)as int)
        set @commerceid = REPLACE(REPLACE(REPLACE(@ID_EMP,' ',''),'T-',''), 'C', '')--@ID_EMP
        set @empid = CAST(REPLACE(REPLACE(REPLACE(@ID_EMP,' ',''),'T-',''), 'C', '') AS BIGINT)

        IF EXISTS(SELECT (@IsActive = CB_ACTIVO) 
                  FROM database.tableName  
                  WHERE (cb_codigo = @commerceid))
        BEGIN
            SET @resultado = 'Work'
        END

        IF NOT EXISTS (SELECT @IsActive = CB_ACTIVO 
                       FROM database.tableName  
                       WHERE cb_codigo = @commerceid)
        BEGIN
            SET @resultado = 'Work and user not exists'

            IF EXISTS (SELECT EmpId 
                       FROM database.tableName2  
                       WHERE empid = @commerceid)
            BEGIN
                SET @resultado = 'Work'
            END
        END
    END
在我添加以下代码之前,此存储过程工作正常:

IF EXISTS(SELECT (@IsActive = CB_ACTIVO) 
          FROM database.tableName  
          WHERE (cb_codigo = @commerceid))
BEGIN
    SET @resultado = 'Work'
END

IF NOT EXISTS (SELECT @IsActive = CB_ACTIVO 
               FROM database.tableName  
               WHERE cb_codigo = @commerceid)
BEGIN
    SET @resultado = 'Work and user not exists'

    IF EXISTS (SELECT EmpId 
               FROM database.tableName2  
               WHERE empid = @commerceid)
    BEGIN
        SET @resultado = 'Work'
    END
end
当我尝试添加这些行时,会收到以下错误消息:

Msg 170,15级,状态1,程序插入,第33行
第33行:“=”附近的语法不正确

Msg 170,15级,状态1,程序插入,第37行
第37行:“=”附近的语法不正确

第33行和第37行对应以下语句:

IF EXISTS(SELECT (@IsActive = CB_ACTIVO) FROM database.tableName WHERE (cb_codigo = @commerceid))

IF NOT EXISTS (SELECT @IsActive = CB_ACTIVO FROM database.tableName WHERE cb_codigo = @commerceid)
我做错了什么?如何解决


PS:当我尝试使用所有If exists/not exists语句时,问题是当我尝试将它们添加到存储过程时。

尝试使用这些语句

SELECT (@IsActive = CB_ACTIVO) FROM  database.tableName  where (cb_codigo =@commerceid)

IF (@isActive IS NOT NULL)
BEGIN
    SET @resultado = 'Work'
END
ELSE
BEGIN
    SET @resultado = 'Work and user not exists'
    IF (SELECT COUNT(*) FROM  database.tableName2  where empid = @commerceid) > 0
    BEGIN
        SET @resultado = 'Work'
    END
END

不能在
EXISTS
语句中设置值,因为实际上没有返回任何数据<代码>存在只需检查是否找到结果。我不确定您对代码的意图是什么,但看起来您需要将
选择
语句移出以设置值,然后对该变量执行
IF
语句以检查其值。