- 爱易网页
 
                        - 
                            MSSQL教程
 
                        - 100分。存储过程的有关问题 ,请 
 
                         
                    
                    
                    日期:2014-05-18  浏览次数:20756 次 
                    
                        
                         100分。存储过程的问题 ,请高手进
想写一个存储过程,内容是现有一个存储过程假如叫SP_tool,该存储过程接受一个参数,如果传入参数叫TA,那么执行一个查找操作,在当前数据库中查找有没有名字叫TA的表,如果有   就自动建立一个存储过程对该表进行插入工作。如果没有这个名称的表就显示无此表。我朋友以前发过帖子,有人回复了,但是不是很懂   ,请解释下,最好每行都说下。最好的   我给90分,谢谢大家   帮帮忙!!!!!!! 
 sql   语句如下: 
  
  
 create   proc   dbo.SP_tool    
                @tablename   varchar(50) 
 AS 
    if   exists(select   1   from   sysobjects   where   name=@tablename   and   xtype= 'u ') 
          begin 
                exec   AutoGeneration_IUD_P   @tablename, '1 '      --插入 
                exec   AutoGeneration_IUD_P   @tablename, '2 '      --更新 
                exec   AutoGeneration_IUD_P   @tablename, '3 '      --刪除 
          end 
  
 GO 
  
  
 /*附通用存儲過程   AutoGeneration_IUD_P   */ 
  
 /*   作者:   zlp321002(行走江湖,万事低调可保一路平安)   */ 
  
 Alter      PROC      [dbo].[AutoGeneration_IUD_P] 
 @TABLENAME   VARCHAR(50), 
 @FLAT      TINYINT 
 AS 
 BEGIN 
 set   @TABLENAME=ltrim(rtrim(@TABLENAME)) 
    DECLARE   @HOST_NAME   VARCHAR(200) 
    DECLARE   @GET_DATE   DATETIME 
    SELECT   @HOST_NAME=HOST_NAME(),@GET_DATE=GETDATE() 
    IF   @FLAT=1   --插入 
    BEGIN 
    DECLARE   @INSERT_SQLROC   NVARCHAR(4000) 
    DECLARE   @INSERT_SQL   VARCHAR(8000) 
    DECLARE   @INSERT_PARAMETER   VARCHAR(8000) 
    DECLARE   @INSERT_DESCRIPTION   VARCHAR(8000) 
    DECLARE   @INSERT_REMARK   VARCHAR(2000) 
    DECLARE   @INSERT_COLUMN   VARCHAR(8000) 
    SELECT   @INSERT_SQLROC= ' ',@INSERT_SQL= ' ',@INSERT_PARAMETER= ' ',@INSERT_DESCRIPTION= ' ', 
       @INSERT_REMARK= ' ',@INSERT_COLUMN= ' ' 
    SET   @INSERT_SQLROC=@INSERT_SQLROC+ 'IF   EXISTS   (SELECT   1   FROM   SYSOBJECTS   WHERE   ID=OBJECT_ID( ' 'SP_ '+@TABLENAME+ '_AddNew ' ')   AND   XTYPE   IN   (N ' 'P ' ')) '+CHAR(10) 
    SET   @INSERT_SQLROC=@INSERT_SQLROC+SPACE(5)+ 'DROP   PROC   SP_ '+@TABLENAME+ '_AddNew '+CHAR(10) 
    SET   @INSERT_SQLROC=@INSERT_SQLROC+ 'GO    ' 
    SELECT   @INSERT_PARAMETER=@INSERT_PARAMETER+SPACE(4)+ '@ '+LTRIM(NAME)+SPACE(2)+ 
    CASE   WHEN   xtype=34   THEN    'image ' 
    WHEN   xtype=35   THEN    'text ' 
    WHEN   xtype=36   THEN    'uniqueidentifier ' 
    WHEN   xtype=48   THEN    'tinyint ' 
    WHEN   xtype=52   THEN    'smallint ' 
    WHEN   xtype=56   THEN    'int ' 
    WHEN   xtype=58   THEN    'smalldatetime ' 
 WHEN   xtype=59   THEN    'real ' 
       WHEN   xtype=60   THEN    'money ' 
          WHEN   xtype=61   THEN    'datetime ' 
       WHEN   xtype=62   THEN    'float ' 
       WHEN   xtype=98   THEN    'sql_variant ' 
       WHEN   xtype=99   THEN    'ntext '