중국어를 병음 이니셜로 바꾸다

6816 단어 중국어
CREATE   function   GetAllPY(@str   nvarchar(4000)) 
returns   nvarchar(4000) 
   
--WITH   ENCRYPTION 
   
as 
begin 
declare   @intLen int 
declare   @strRet nvarchar(4000) 
declare   @temp   nvarchar(100) 
   
set   @intLen   =   len(@str) 
set   @strRet   =   '' 
   
while   @intLen   >   0 
begin 
set   @temp   =   '' 
   
select   @temp   =   case    
when   substring(@str,@intLen,1)   >=   ' '   then   'Z' 
when   substring(@str,@intLen,1)   >=   ' '   then   'Y' 
when   substring(@str,@intLen,1)   >=   ' '   then   'X' 
when   substring(@str,@intLen,1)   >=   ' '   then   'W' 
when   substring(@str,@intLen,1)   >=   ' '   then   'T' 
when   substring(@str,@intLen,1)   >=   ' '   then   'S' 
when   substring(@str,@intLen,1)   >=   ' '   then   'R' 
when   substring(@str,@intLen,1)   >=   ' '   then   'Q' 
when   substring(@str,@intLen,1)   >=   ' '   then   'P' 
when   substring(@str,@intLen,1)   >=   ' '   then   'O' 
when   substring(@str,@intLen,1)   >=   ' '   then   'N' 
when   substring(@str,@intLen,1)   >=   ' '   then   'M' 
when   substring(@str,@intLen,1)   >=   ' '   then   'L' 
when   substring(@str,@intLen,1)   >=   ' '   then   'K' 
when   substring(@str,@intLen,1)   >=   ' '   then     'J' 
when   substring(@str,@intLen,1)   >=   ' '   then   'H' 
when   substring(@str,@intLen,1)   >=   ' '   then   'G' 
when   substring(@str,@intLen,1)   >=   ' '   then   'F' 
when   substring(@str,@intLen,1)   >=   ' '   then   'E' 
when   substring(@str,@intLen,1)   >=   ' '   then   'D' 
when   substring(@str,@intLen,1)   >=   ' '   then   'C' 
when   substring(@str,@intLen,1)   >=   ' '   then   'B' 
when   substring(@str,@intLen,1)   >=   ' '   then   'A' 
else   rtrim(ltrim(substring(@str,@intLen,1))) 
end 
   
-- ,  
if   (ascii(@temp)>127)   set   @temp   =   '' 
   
-- ,  
if   @temp   =   '('   or   @temp   =   ')'   set   @temp   =   '' 
   
select   @strRet   =   @temp   +   @strRet 
   
set   @intLen   =   @intLen   -   1 
end 
   
return   lower(@strRet) 
end  

-------------------------------------------------
모든 표의 표 이름, 필드 이름, 표시, 설명 등을 얻다

SELECT 
    (case when a.colorder=1 then d.name else '' end)  ,
    a.colorder  ,
    a.name  ,dbo.GetAllPY(a.name),
    (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end)  ,
    (case when (SELECT count(*) 
                FROM sysobjects 
                WHERE (name in (SELECT name
                                FROM sysindexes
                                WHERE (id = a.id) AND (indid in (SELECT indid
                                                                 FROM sysindexkeys
                                                                 WHERE (id = a.id) AND (colid in (SELECT colid
                                                                                                  FROM syscolumns
                                                                                                  WHERE (id = a.id) AND (name = a.name)
                                                                                                  )
                                                                                        )
                                                                )
                                                        )
                                )
                        ) AND (xtype = 'PK') 
                ) > 0 then '√' else '' end)  ,
    b.name  ,
    a.length  ,
    COLUMNPROPERTY(a.id,a.name,'PRECISION') as  ,
    isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as  ,
    (case when a.isnullable=1 then '√'else '' end)  ,
    isnull(e.text,'')  ,
    isnull(g.[value],a.name) AS     

FROM syscolumns a 
    left join systypes b on a.xtype=b.xusertype
    inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
    left join syscomments e on a.cdefault=e.id
    left join sysproperties g on a.id=g.id AND a.colid = g.smallid

order by a.id,a.colorder

sql2005에서
SELECT 
            = case when a.colorder=1 then d.name else '' end,
          = case when a.colorder=1 then isnull(f.value,'') else '' end,
        = a.colorder,
          = a.name,
            = case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
            = case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=a.id and name in (
                     SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid))) then '√' else '' end,
            = b.name,
      = a.length,
            = COLUMNPROPERTY(a.id,a.name,'PRECISION'),
        = isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
          = case when a.isnullable=1 then '√'else '' end,
          = isnull(e.text,''),
        = isnull(g.[value],'')
FROM 
    syscolumns a
left join 
    systypes b 
on 
    a.xusertype=b.xusertype
inner join 
    sysobjects d 
on 
    a.id=d.id  and d.xtype='U' and  d.name<>'dtproperties'
left join 
    syscomments e 
on 
    a.cdefault=e.id
left join 
sys.extended_properties   g 
on 
    a.id=G.major_id and a.colid=g.minor_id  
left join 

sys.extended_properties f
on 
    d.id=f.major_id and f.minor_id=0
--where d.name='lj_pruchase_material'    -- , 
order by 
    a.id,a.colorder

좋은 웹페이지 즐겨찾기