分析权限存储与页面对应的SQL存储过程


  本文标签:SQL存储过程

  SQL存储过程的功能非常强大,下面就将为您介绍实现分析权限存储与页面对应的SQL存储过程,希望对您学习SQL存储过程方面有所启迪  。

  1. CREATE PROCEDURE w_Function_GetParams  
  2. AS  
  3. DECLARE  
  4.     @FunctionName_CN nvarchar(64),  
  5.     @ActionName nvarchar(32),  
  6.     @PageName nvarchar(128),  
  7.     @Cache_FN nvarchar(256),  
  8.     @LENFN int,  
  9.     @Index_A int,  
  10.     @index_B int  
  11. BEGIN  
  12.     CREATE TABLE #Temp_TAB  
  13.     (  
  14.         ID int identity(1,1),  
  15.         FN nvarchar(64),  
  16.         AN nvarchar(32),  
  17.         PN nvarchar(128)  
  18.     )  
  19.  
  20.     DECLARE FN_CURSOR CURSOR FOR  
  21.     SELECT FunctionName FROM Admin_FunctionList WHERE GroupID=0 
  22.  
  23.     OPEN FN_CURSOR;  
  24.     FETCH NEXT FROM FN_CURSOR INTO @Cache_FN;  
  25.  
  26.     WHILE @@FETCH_STATUS=0 
  27.     BEGIN  
  28.         SET @LENLENFN=LEN(@Cache_FN);  
  29.         SET @Index_A=CHARINDEX(|,@Cache_FN);  
  30.         SET @Index_B=CHARINDEX(:,@Cache_FN);  
  31.  
  32.         SET @FunctionName_CN=SUBSTRING(@Cache_FN,0,@Index_A);  
  33.         SET @ActionName=SUBSTRING(@Cache_FN,@Index_A+1,@Index_B-@Index_A-1);  
  34.         SET @PageName=SUBSTRING(@Cache_FN,@Index_B+1,@LENFN-@Index_B);  
  35.  
  36. --        print(@FunctionName_CN);  
  37. --        Print(@ActionName);  
  38. --        print(@PageName);  
  39.  
  40.         INSERT INTO #Temp_TAB VALUES(@FunctionName_CN,@ActionName,@PageName)  
  41.           
  42.         FETCH NEXT FROM FN_CURSOR INTO @Cache_FN;  
  43.     END  
  44.       
  45.     CLOSE FN_CURSOR;  
  46.     DEALLOCATE FN_CURSOR;  
  47.  
  48.     SELECT FN,AN,PN FROM #Temp_TAB GROUP BY PN,AN,FN  
  49.  
  50. END