Stored procedures 存储过程:操作员在';如果@recordCount<;=@蒙哥';

Stored procedures 存储过程:操作员在';如果@recordCount<;=@蒙哥';,stored-procedures,sql-server-2005,Stored Procedures,Sql Server 2005,我希望有人能再次帮助我,关于我的工作 是否有机会使操作员“>”灵活 现在,我的存储过程工作得很好,当记录计数大于参数Menge时,我将收到一封电子邮件 代码如下: @Menge as int = 0, @recordCount as int = 0, set @MySQL = 'select @recordCount=count(2) from ' + @MyTable + ' where ' + @MyWhere exec sp_execute @MySQL, N'@recordCou

我希望有人能再次帮助我,关于我的工作

是否有机会使操作员“>”灵活

现在,我的存储过程工作得很好,当记录计数大于参数
Menge
时,我将收到一封电子邮件

代码如下:

@Menge as int = 0,  
@recordCount as int = 0,

set @MySQL = 'select @recordCount=count(2) from ' + @MyTable + ' where ' + @MyWhere 
exec sp_execute @MySQL, N'@recordCount int OUTPUT', @recordCount=@recordCount OUTPUT

IF @recordCount > @Menge    
begin
    ...
    EXEC msdb.dbo.sp_send_dbmail
现在,我想让
更灵活,以便在记录数小于
menge

我试图声明参数,但不知道如何将其插入
if@recordcount>@Menge
行:(

我将使用

exec sp_eMail_Test3
        @Menge = 0,
        @eMail_TO = 'testuser@test.xx' ,
        @eMail_Subject = 'test3 ',
        @eMail_Body = 'Hallo, das ist ein Test',
        @MyTable ='test'    ,
        @MyWhere = 'not [sys_completed] is null'
        @OpInd = '<'
exec sp\u eMail\u Test3
@孟格=0,
@电邮至testuser@test.xx' ,
@电子邮件主题='test3',
@eMail_Body='Hallo,das ist ein Test',
@MyTable='test',
@MyWhere='not[sys_completed]为空'

@OpInd='只需将操作数更改为


如果您试图将其设置为
旁注:您不应该在存储过程中使用
sp_
前缀。Microsoft已经这样做了,而且您确实会在将来某个时候冒名称冲突的风险。最好只是避免使用
sp_
而使用其他前缀,或者根本不使用前缀!哦!我非常高兴感谢你提供的这些信息。我没有注意到这些信息
exec sp_eMail_Test3
        @Menge = 0,
        @eMail_TO = 'testuser@test.xx' ,
        @eMail_Subject = 'test3 ',
        @eMail_Body = 'Hallo, das ist ein Test',
        @MyTable ='test'    ,
        @MyWhere = 'not [sys_completed] is null'
        @OpInd = '<'
IF @recordCount <> @Menge    
begin
    ...
    EXEC msdb.dbo.sp_send_dbmail
IF (@recordCount > @Menge or @recordCount < @Menge)    
begin
    ...
    EXEC msdb.dbo.sp_send_dbmail
declare @sql varchar(max)
set @sql = 
'IF ' + cast(@recordCount as varchar(16)) + ' ' + @OpInd + ' ' + cast(@Menge as varchar(16)) + '     
begin
    ...
    EXEC msdb.dbo.sp_send_dbmail'

EXEC(@sql)