当前位置: 代码迷 >> Sql Server >> 一个简单的存储过程优化,多谢
  详细解决方案

一个简单的存储过程优化,多谢

热度:6   发布时间:2016-04-27 18:01:39.0
一个简单的存储过程优化,谢谢!
create PROCEDURE [dbo].[bExistDir] 
(@MySubject varchar(64),
  @MyID int)
AS
BEGIN
  declare @var1 nvarchar(128)
  declare @iNum int;
  select @var1 = 'select @a = count(*) from [email protected] + 'Dir' + ' where parentid = ' + rtrim(@MyID)
  exec sp_executesql @var1,[email protected] int output',@iNum output
  if @iNum = 0
  begin
  return 0
  end
  else
  begin
  return 1 
  end
end

因为 if exist 效率应该比 count(*)高,所以想更改一下,但是不知道该如何写,谢谢!

------解决方案--------------------
SQL code
if exists (select 1 from @MySubject where parentid = rtrim(@MyID))return 1elsereturn 0
------解决方案--------------------
SQL code
create PROCEDURE [dbo].[bExistDir] (@MySubject varchar(64),  @MyID int)ASBEGIN    DECLARE @t TABLE(ID int)    INSERT @T EXEC('if exists(select 1 from [email protected] + 'Dir' + ' where parentid = ' + @MyID+') select 1 ')    IF EXISTS(SELECT 1 FROM @t)      return 1    ELSE         return 0END
  相关解决方案