乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      復(fù)制含主鍵的表結(jié)構(gòu)的SQL

       照汗青 2010-09-26
      create   procedure   up_getTableStruct   
       
      @v_tableName   varchar(256)   
       
      as   
       
      declare   @i_objectId   int,   --   對象id   
        @i_indId   smallint,   --   索引id   
        @v_pkInfo   varchar(100),   --   主鍵信息   
        @v_clusteredInfo   varchar(20),   --   clustered信息   
        @v_pkCol   varchar(100),   --   主鍵字段   
        @v_key   varchar(50),   
       
      @i_i   smallint   
       
      set   @i_objectId   =   object_id(@v_tableName)   
       
      if   @i_objectId   is   null   --   判斷對象是否存在   
        begin   
       
      print   'The   object   not   exists'   
       
      return   
       
      end   
       
      if   OBJECTPROPERTY(@i_objectId,'IsTable')   <>   1   --   判斷對象是否是table   
        begin   
       
      print   'The   object   is   not   table'   
       
      return   
       
      end   
        
       
      create   table   #temp1   
        (   
        i_id  
      int   identity,   
        v_desc  
      varchar(200)   
        )   
        
       
      insert   into   #temp1(v_desc)   
       
      values('create   table   '+@v_tableName+'(')   --   
        
       
      insert   into   #temp1(v_desc)   --   將表的字段信息存入臨時表   
        select   a.name+space(4)+b.name+   
       
      case   when   b.xtype   in   (167,175,231,239)   then   '('+cast(a.length   as   varchar)+')'   
       
      when   b.xtype   in   (106,108)   then   '('+cast(a.xprec   as   varchar)+','+cast(a.xscale   as   varchar)+')'   
       
      else   ''   end+space(4)+   
       
      case   when   (a.colstat   &   1   =   1)   then   'identity('+cast(ident_seed(@v_tableName)   as   varchar)+','   +   
       
      cast(ident_incr(@v_tableName)   as   varchar)+')'   else   ''   end   +space(4)+   
       
      case   a.isnullable   when   0   then   'not   null'   else   'null'   end+'|'   
       
      from   syscolumns   a,systypes   b   
       
      where   a.id   =   @i_objectId   and   a.xtype   =   b.xusertype   
       
      order   by   a.colid   
        
       
      create   procedure   名 
       
      @aa   varchar(10
       
      as 
       
      begin 
           
      select   a.id   編號,a.name   名稱,b.id,b.name   from   table1   a   join   table2   b   on   a.id=b.id   where   
       
      end 
        
       
      if   exists(select   1   from   sysobjects   where   parent_obj   =   @i_objectId   and   xtype   =   'PK')   --   如果存在主鍵   
        begin   
       
      select   @v_pkInfo   =   b.name,@i_indId   =   indid,   --   得到主鍵名,id及是否clustered信息   
        @v_clusteredInfo   =   (case   when   (a.status   &   16)=16   then   'clustered'   else   'nonclustered'   end   )   
       
      from   sysindexes   a,sysobjects   b   
       
      where   a.id   =   b.parent_obj   and   a.name   =   b.name   and   b.xtype   =   'PK'   and   b.parent_obj   =   @i_objectId   
        
       
      select   @v_pkCol   =   index_col(@v_tableName,   @i_indId,   1),   @i_i   =   2   --   得到主鍵的第1個字段名   
        select   @v_key   =   index_col(@v_tableName,   @i_indId,   @i_i)   --   得到主鍵的第2個字段名   
        while   (@v_key   is   not   null)   
       
      begin   
       
      select   @v_pkCol   =   @v_pkCol   +   ','   +   @v_key,   @i_i   =   @i_i   +   1   
       
      select   @v_key   =   index_col(@v_tableName,   @i_indId,   @i_i)   --   得到主鍵的第@i_i個字段名   
        end   --   組合成主鍵信息   
        set   @v_pkInfo   =   'constraint   '+@v_pkInfo+'   primary   key   '+@v_clusteredInfo+'('+@v_pkCol+')'   
       
      insert   into   #temp1(v_desc)   values(@v_pkInfo)   --   將主鍵信息插入臨時表   
        end   
       
      else   
       
      begin   
       
      select   @i_i   =   count(1)   from   #temp1   
       
      --   如果沒有主鍵,那麼將最後一筆紀錄的'|'去掉   
        update   #temp1   set   v_desc   =   replace(v_desc,'|','')   where   i_id   =   @i_i   
       
      end   
        
       
      insert   into   #temp1(v_desc)   values(')')   --   
        update   #temp1   set   v_desc   =   replace(v_desc,'|',',')   
        
       
      select   v_desc   from   #temp1   order   by   i_id   
        
       
      drop   table   #temp1

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多