在代码片段37或35上的IF中选择更多值时,我的存储过程中出现语法问题。
IF 37 OR 35 NOT IN (SELECT CodPerfilSistema
FROM [BRSAODB09].[ADMIN].[dbo].[PERFIL_USUARIO]
WHERE CodUsuario = @pCodUsuario)
BEGIN
SET @CondicaoEmpresa = ' AND [Lote].CodEmpresa = ' + CONVERT(varchar(10), @pCodEmpresa);
SET @CondicaoProjeto = ' AND [AUD_Projeto].CodProjeto = ' + CONVERT(varchar(10), @pCodProjeto);
END
我尝试了上面的代码。
下面是代码的运行方式
IF 37 NOT IN (SELECT CodPerfilSistema
FROM [BRSAODB09].[ADMIN].[dbo].[PERFIL_USUARIO]
WHERE CodUsuario = @pCodUsuario)
BEGIN
SET @CondicaoEmpresa = ' AND [Lote].CodEmpresa = ' + CONVERT(varchar(10), @pCodEmpresa);
SET @CondicaoProjeto = ' AND [AUD_Projeto].CodProjeto = ' + CONVERT(varchar(10), @pCodProjeto);
END
我需要ID 37和35的许可。
答案 0 :(得分:0)
尝试以下
IF not exists (SELECT * FROM [BRSAODB09].[ADMIN].[dbo].[PERFIL_USUARIO] where CodUsuario = @pCodUsuario
and CodPerfilSistema in (37,35))
BEGIN
SET @CondicaoEmpresa = ' AND [Lote].CodEmpresa = ' + CONVERT(varchar(10), @pCodEmpresa);
SET @CondicaoProjeto = ' AND [AUD_Projeto].CodProjeto = ' + CONVERT(varchar(10), @pCodProjeto);
END
答案 1 :(得分:0)
感谢大家的帮助,我找到了解决我遇到的问题的方法。
它保持这样:
IF NOT EXISTS(
SELECT 1
FROM [BRSAODB09].[ADMIN].[dbo].[PERFIL_USUARIO]
WHERE CodUsuario = @pCodUsuario
AND CodPerfilSistema IN(37,35)
)
BEGIN
SET @CondicaoEmpresa = ' AND [Lote].CodEmpresa = ' + CONVERT(varchar(10),
@pCodEmpresa);
SET @CondicaoProjeto = ' AND [AUD_Projeto].CodProjeto = ' + CONVERT(varchar(10),
@pCodProjeto);
END