原代码来自:东莞--小小大神

使用

--聚合函数
SELECT father_key,dbo.String_Agg(department_name) FROM dbo.b_department
GROUP BY father_key
--首字母大写
SELECT dbo.[Capit](null),dbo.capit('我是 xiaoxiao a')
--计算表达式的值
SELECT dbo.Fn_Cacl('1+6*2*(1+1)')
--日期时间格式化
SELECT
dbo.FormatDateTime(GETDATE(),'yyyy年MM月dd日'),
dbo.FormatDateTime(GETDATE(),'yyyy-MM-dd hh:mm:ss'),
dbo.FormatDateTime(GETDATE(),'mm:ss'),
dbo.FormatDateTime(GETDATE(),'yyyy/M/d'),
dbo.FormatDateTime(GETDATE(),'dd/MM/yyyy')
--四舍六入五成双
SELECT dbo.MyRound(5.25,1),dbo.MyRound(5.35,1)
--字符串处理
SELECT dbo.TrimAll('0124我是在测试789',''), dbo.PadLeft('我',10,''),dbo.PadRight('我',10,''),
dbo.TrimEnd('0124我是在测试789',''),dbo.TrimStart('0124我是在测试789','')
,dbo.ToSBC('wo'),dbo.ToDBC('wo'),dbo.charat('1,2,3,4,5',',',0),dbo.MyTrim(' 000 ')
--字符串拆分
SELECT * FROM dbo.String_Split('1,2,3,4',',')
--连续数字
SELECT * FROM dbo.Ft_GetNumbers(11) --正则表达式匹配替换
SELECT dbo.Reg_Match('我是12的','\d'),dbo.Reg_CharIndex('我是12的','\d'),dbo.Reg_Replace('我是12的','\d','')
--正则表达式拆分
SELECT * FROM dbo.Reg_Split('1A 2B 3C 4D 5E 6F的 7G 8H 9I 10J 11Q 12J 13K 14L 15M 16N ffee80 #800080','\d+[A-Z] ')
--取第i个逗号分割的字符串
SELECT dbo.CharAt('1,2,3,4,5,6',',',2)

定义,这里是已经编译好的DLL

ALTER DATABASE master SET TRUSTWORTHY ON
go CREATE ASSEMBLY [Database2]
FROM 0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000504500004C010300989BE65B0000000000000000E00022200B013000003E00000006000000000000625C000000200000006000000000001000200000000200000400000000000000040000000000000000A000000002000000000000030040850000100000100000000010000010000000000000100000000000000000000000105C00004F000000006000006803000000000000000000000000000000000000008000000C000000D85A00001C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000082000004800000000000000000000002E74657874000000783C000000200000003E000000020000000000000000000000000000200000602E7273726300000068030000006000000004000000400000000000000000000000000000400000402E72656C6F6300000C0000000080000000020000004400000000000000000000000000004000004200000000000000000000000000000000445C000000000000480000000200050018340000C026000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001B3003002C0000000100001100047201000070510004020328040000065100DE160A00281800000A066F1900000A6F1A00000A0000DE002A01100000000008000D1500160F0000011B3002002B00000001000011000372010000705100030228030000065100DE160A00281800000A066F1900000A6F1A00000A0000DE002A0001100000000008000C1400160F0000011330020077000000020000110002281B00000A74100000010A0672030000706F1C00000A00067E1D00000A6F1E00000A00026F1F00000A720B0000706F2000000A0D092C0F0020C0000000282100000A00002B0A001F30282100000A0000066F2200000A74110000010B076F2300000A732400000A0C086F2500000A13042B0011042A001B300400FA000000030000110072010000700A02281B00000A74100000010B0772190000706F1C00000A000720881300006F2600000A000772230000706F2700000A00077E1D00000A6F1E00000A00026F1F00000A720B0000706F2000000A130511052C0F0020C0000000282100000A00002B0A001F30282100000A0000282800000A036F2900000A0C07088E696A6F2A00000A00076F2B00000A13060011060816088E696F2C00000A0011066F2D00000A0000DE0D11062C0811066F0F00000A00DC076F2200000A74110000010D096F2300000A13041104282800000A732E00000A13070011076F2500000A0A00DE0D11072C0811076F0F00000A00DC0613082B0011082A0000011C00000200910019AA000D000000000200D9000CE5000D000000001B300200A3010000040000110000140A036F1F00000A0C0828290000060D0920B05EF81135240920A0892B062E672B0009201F3F12082E6F2B000920B05EF8113B9800000038130100000920DE5B3B93351A0920618BA9803B8F0000002B000920DE5B3B932E1C38F10000000920F268B4962E572B000920AB6DB4992E3B38DA000000087245000070282F00000A2D6B38C8000000087255000070282F00000A2D6738B6000000087265000070282F00000A2D6338A4000000087271000070282F00000A2D5F389200000008727B000070282F00000A2D5B3880000000087285000070282F00000A2D572B71087291000070282F00000A2D562B6202283000000A733100000A0A2B6202283200000A733100000A0A2B5402283300000A733100000A0A2B4602283400000A733100000A0A2B3802282800000A733100000A0A2B2A02283500000A733100000A0A2B1C02283600000A733100000A0A2B0E02283000000A733100000A0A2B002B0E00281800000A076F1A00000A0000066F3700000A250B14FE03130411042DE1066F3800000A0000DE18130500281800000A11056F1900000A6F1A00000A0000DE002A00411C00000000000001000000890100008A010000180000000F0000012202283900000A002A3E1FFE732C00000625027D0A0000042A0000001330020011000000050000110002A5070000020A03067B03000004542A000000133004003700000006000011000214FE010A062C04140B2B2804283A00000A0C082C0C02031F206F3B00000A0B2B120203046F3C00000A16936F3B00000A0B2B00072A00133004003700000006000011000214FE010A062C04140B2B2804283A00000A0C082C0C02031F206F3D00000A0B2B120203046F3C00000A16936F3D00000A0B2B00072A00133002001800000007000011000214FE010A062C04140B2B09026F3E00000A0B2B00072A133002001E00000007000011000214FE010A062C04140B2B0F02036F3C00000A6F3F00000A0B2B00072A0000133002001E00000007000011000214FE010A062C04140B2B0F02036F3C00000A6F4000000A0B2B00072A0000133002001E00000007000011000214FE010A062C04140B2B0F02036F3C00000A6F4100000A0B2B00072A0000133002002D00000008000011000F00284200000A16FE010A062C0500140B2B17028C0300001B284300000A0C120203284400000A0B2B00072A000000133004007100000009000011000214FE010B072C0914284500000A0C2B5D026F3C00000A0A160D2B38000609931F20FE01130411042C0B00060920003000009D2B1B0609931F7FFE04130511052C0D060906099320E0FE000058D19D000917580D09068E69FE04130611062DBC06734600000A284500000A0C2B00082A00000013300400770000000A000011000214FE010B072C04140C2B68026F3C00000A0A160D2B48000609932000300000FE01130411042C080006091F209D2B2B0609932000FF0000310C060993205FFF0000FE042B0116130511052C0D060906099320E0FE000059D19D000917580D09068E69FE04130611062DAC06734600000A0C2B00082A0013300200190000000B0000110002A5080000020A04067B040000045103067B05000004542A5A1FFE733400000625027D1000000425037D120000042A5A1FFE733C00000625027D1900000425037D1B0000042A00133002002100000006000011000214FE010A062C04140B2B120203284700000A0C1202284800000A0B2B00072A00000013300200300000000C000011000214FE010B072C04150C2B210203284900000A0A066F4A00000A0D092C0B066F4B00000A17580C2B04160C2B00082A1B3006003300000007000011000214FE010A062C04140B2B24000002178D400000012516036F3C00000A16939D6F4C00000A049A0BDE062600140BDE00072A000110000000000E001D2B00060D00000113300300210000000D000011000214FE010B072C04140C2B1203734D00000A0A0602046F4E00000A0C2B00082A00000013300200290000000E000011000214FE010B072C04140C2B1A284F00000A6F5000000A6F5100000A0A06026F5200000A0C2B00082A000000133002001E0000000F000011000F00285300000A0F01285400000A285500000A285600000A0A2B00062A00001B3002005A000000100000110072B300007002285700000A0A72C9000070735800000A0B00076F5900000A0006285A00000A0C0006285A00000A07735B00000A0D096F5C00000A6F5D00000A1304DE13130500141304DE0B072C07076F0F00000A00DC11042A0000011C0000000027001D4400080F00000102001800344C000B00000000360002735E00000A7D010000042A0000133002002A00000011000011000F01285F00000A0A062C03002B1A027B010000040F01286000000A6F6100000A1F2C6F6200000A262A5200027B01000004037B010000046F6300000A262A00133004004B00000012000011007E6400000A0A027B010000042C10027B010000046F6500000A16FE022B01160B072C1C00027B0100000416027B010000046F6500000A17596F6600000A0A0006736700000A0C2B00082A4E0002036F6800000A736900000A7D010000042A520003027B010000046F5D00000A6F6A00000A002A133004008700000013000011000F00285F00000A2D120F01285F00000A2D090F02285F00000A2B01170B072C1200281800000A72F90000706F1A00000A000020FEFF00000A0F03286B00000A2D1A0F03286C00000A20FFFF00002F0C0F03286C00000A16FE022B01160C082C090F03286C00000AD10A0F00286000000A0F01286000000A0F02286000000A062825000006002A001B30060051010000140000110003286D00000A16FE010A062C090003286E00000A260072C9000070735800000A0B00076F5900000A00076F6F00000A0C0008026F7000000A00086F7100000A0D00161304161305287200000A1306281800000A720D0100706F1A00000A002B7300721D0100700304110425175813048C49000001287300000A130709051107282700000613081107737400000A287500000A130911051108581305281800000A723D010070110711088C490000011209726F010070287600000A287300000A6F1A00000A00110805FE04130A110A2C022B060017130B2B88287200000A1106591306281800000A727F0100706F1A00000A00281800000A728F0100706F1A00000A00281800000A729F01007011058C4900000111068C49000001287700000A6F1A00000A0000DE0B092C07096F0F00000A00DC00DE0B082C07086F0F00000A00DC00DE0B072C07076F0F00000A00DC2A000000414C00000200000041000000E8000000290100000B00000000000000020000003100000006010000370100000B00000000000000020000002200000023010000450100000B0000000000000013300400900100001500001100036F7800000A6F7900000A6F5D00000A0A060B0728290000060C0820B2F1B6473542082052F23329351D08207D455E093B870000002B00082052F233293B9E0000003836010000082097B00E2A3BDC0000002B000820B2F1B6473BB1000000381901000008203E8D8CC2351A0820E55124653BA80000002B0008203E8D8CC22E4D38F700000008203FEFAAC72E642B000820517FAFD32E692B000820BDFD94FD2E0538D60000000772C3010070282F00000A3A8600000038C10000000772D9010070282F00000A2D7438AF0000000772E9010070282F00000A2D62389D0000000772FF010070282F00000A2D50388B000000077213020070282F00000A2D3E2B7C077225020070282F00000A2D2F2B6D077237020070282F00000A2D202B5E077249020070282F00000A2D112B4F07725B020070282F00000A2D022B40036F5D00000A6F1F00000A726F020070282F00000A0D092C11020405036F5D00000A6F49000006002B14020405036F5D00000A287A00000A6F48000006002B11020405036F5D00000A6F49000006002B002A1B300500BB0000001600001100030A0473440000060B076F460000060000160C2B170007160802086F7B00000A6F490000060000081758D10C08026F7C00000AFE040D092DDC1713042B5100026F7D00000A16FE01130511052C0800110417590A2B471613062B1C00070211066F7E00000A110411062826000006000011061758D113061106026F7C00000AFE04130711072DD40011041758D11304110403FE0216FE01130811082DA100DE0613090011097ADE0A00076F470000060000DC06130A2B00110A2A00011C00000000110090A100060F0000010200110098A9000A00000000133002002E00000017000011022C2920C59D1C810A160B2B1402076F7F00000A066120930100015A0A0717580B07026F8000000A2F022BE1062A260002037D030000042A420002037D0500000402047D040000042A7E02283900000A0002037D0600000402284F00000A6F8100000A7D080000042A062A00133003007800000018000011027B060000040A062C082B0006172E042B042B042B33162A02157D060000040002177D0B0000042B380002027B0B000004732A0000068C070000027D0700000402177D06000004172A02157D0600000400027B0B0000040B020717587D0B000004027B0B000004027B09000004FE0216FE010C082DB3162A1E027B070000042A1A738200000A7A00133002003C00000019000011027B060000041FFE331D027B08000004284F00000A6F8100000A330B02167D06000004020A2B0716732C0000060A06027B0A0000047D09000004062A1E0228320000062A7E02283900000A0002037D0C00000402284F00000A6F8100000A7D0E0000042A13300400B90000001A000011027B0C0000040A062C082B0006172E042B042B042B71162A02157D0C00000400027B0F00000414FE030B0739870000000002177D1300000402027B0F000004027B11000004284900000A7D140000042B4F0002027B130000040C020817587D1300000408027B140000046F8300000A732B0000068C080000027D0D00000402177D0C000004172A02157D0C00000402027B140000046F8400000A7D1400000400027B140000046F4A00000A0D092DA20002147D14000004162A1E027B0D0000042A00000013300200480000001B000011027B0C0000041FFE331D027B0E000004284F00000A6F8100000A330B02167D0C000004020A2B071673340000060A06027B100000047D0F00000406027B120000047D11000004062A1E02283A0000062A7E02283900000A0002037D1500000402284F00000A6F8100000A7D170000042A13300700E70000001C000011027B150000040A062C082B0006172E042B072B073897000000162A02157D1500000400027B1800000414FE030B0739B20000000002177D1C0000040002027B18000004178D400000012516027B1A0000046F3C00000A16939D6F4C00000A7D1D00000402167D1E0000042B6102027B1D000004027B1E0000049A7D1F0000040002027B1C0000040C020817587D1C00000408027B1F000004732B0000068C080000027D1600000402177D15000004172A02157D150000040002147D1F00000402027B1E00000417587D1E000004027B1E000004027B1D0000048E69328F02147D1D00000400162A1E027B160000042A0013300200480000001D000011027B150000041FFE331D027B17000004284F00000A6F8100000A330B02167D15000004020A2B0716733C0000060A06027B190000047D1800000406027B1B0000047D1A000004062A1E0228420000062A5A02283900000A000002031A738500000A7D200000042A0013300400310000001E0000110000030A160B2B220607930C0008288600000A0D027B200000040916098E696F2C00000A00000717580B07068E6932D82A6A00021C8D5200000125D002000004288700000A2845000006002A820002188D5200000125161F0A9D284500000600027B200000046F2D00000A002A000000133005003C0000001F00001100021B8D52000001251620030200009D25171F0E9D2518039D2519049D28450000060005288800000A0A027B200000040616068E696F2C00000A002A133006004C0000001F00001100283000000A056F2900000A0A021C8D52000001251620040200009D2517068E691E58D19D2518039D2519049D251B068E69D19D284500000600027B200000040616068E696F2C00000A002A42534A4201000100000000000C00000076322E302E35303732370000000005006C00000050100000237E0000BC100000B40D000023537472696E677300000000701E00007C02000023555300EC200000100000002347554944000000FC200000C405000023426C6F6200000000000000020000015797A22B0902000000FA01330016000001000000550000000D00000020000000490000005500000010000000880000003C000000010000001F0000000300000006000000060000001500000003000000010000000100000003000000070000000000ED0601000000000006005305030A0600C005030A06005004F0090F00230A000006006404D10706003605D10706000205D1070600A705D10706007305D10706008C05D1070600B204D1070600E504D10706001A0B65070A007B044A0906000A0865070E00EC0C210B0E00BD03210B0600C1086B0106005E076B010A0021054A090600AD029F0A0600270065070600300365070A005406320A0E007D06800A0E00670D800A06005008BC070A00C502320A0A001201320A0A0036024A090A00F007A70B0A001F02A70B06005303650706003504030A0600B902650706006D099F0A060040009A01060032009A010600CD04F0090A000E0B4A090A0091044A090A0007064A090600ED08260D0600D9086B01060021096B010A007500320A0A00A508A70B060037076B010A00420D4A090A004B034A090E00F00C210B0E00B007210B0600B40765070600600665070E00FB08210B0E005D03210B0E00C103210B0600CE086B0106003406260D0600E40C650706007A0765070E006F08800A0E00A903800A0600790865070600EE01230606003508BC070600950665070A00E30714080A000702140806008F0D6B01060059086B010600BD0B650706007800650706002C086B010600C000650706008503650706004108D1070A00980814080600FE07650706006B026B0106003509650706000B0165070600E50A030A0600830D65070600D8026507000000002D01000000000100010001001000470A000035000100010001001000B20A00003500010007000120100018060000350001001D00010010008A03000035000200240000010000360100003500020029000B011000A7020000850003002A000B01100091000000850004002B000301100013000000350006002C0003011000AF00000035000C00340003011000F7000000350015003C000200100015090000350020004400130100004E000000850021004A0001009301BB023301C600C00206002A08C4020600050BDC010600D306C40201001604C40201009B0CC7020100C901C40201002A08C40206007307C40201000B00C40201001604C40201009B0CC7020100C901C40201000C0DDC010600070DDC0101006C08DC0106006708DC0101000B00C40201007E00CA0201001604C40201009B0CC7020100C901C40201000C0DDC010600070DDC0101006C08DC0106006708DC0101000B00C40201008A00CE020100A800C4020100EF00DC0101004209D20250200000000096008C07D702010098200000000096008207DF020400E0200000000096002407B001060064210000000096002B07E60207008822000000009600120DEC0209005424000000008618EA0906000B005D24000000009600D70AF2020B007024000000009100FB06F8020C009024000000009600510BFF020E00D424000000009600590BFF02110018250000000096006C07B00114003C25000000009600E506E60215006825000000009600DA0CE60217009425000000009600F501E6021900C0250000000096002A0306031B00FC250000000096005B0129011D007C260000000096005501B0011E000027000000009100A20011031F0025270000000096006E0B1A0322003C27000000009600780B1A03240054270000000096006706E60226008427000000009600590D21032800C027000000009600070B27032A00102800000000960058022E032D0040280000000096008A0BB00130007828000000009600450235033100A428000000009600DD06B00133005424000000008618EA09060034002829000000008600850B06003400382900000000860001043E0334006E29000000008600A1024403350084290000000086000C044A033600DB2900000000E601DE014F033600EF2900000000E6012F04560337005424000000008618EA0906003800042A000000009600680A5D033800982A000000009100760A6A033C00442C000000009100150B72034000E02D0000000091002F047B0344005424000000008618EA0906004700C42E000000009300830684034700FE2E000000008618EA0901004800082F000000008618EA0989034900192F000000008618EA0901004B00392F00000000E101DF0306004C003C2F00000000E1011D0D15004C00C02F00000000E1092E0C25004C00C82F00000000E1012C0B06004C00C02F00000000E109700C25004C00D02F00000000E10179098F034C00183000000000E101BD093A004C002030000000008618EA0901004C00392F00000000E101DF0306004D00403000000000E1011D0D15004D00053100000000E1092E0C25004D00C82F00000000E1012C0B06004D00053100000000E109700C25004D00103100000000E10179098F034D00643100000000E101BD093A004D006C31000000008618EA0901004D00392F00000000E101DF0306004E008C3100000000E1011D0D15004E007F3200000000E1092E0C25004E00C82F00000000E1012C0B06004E007F3200000000E109700C25004E00883200000000E10179098F034E00DC3200000000E101BD093A004E00E432000000008618EA0910004E00FC32000000008100EB0298034F0039330000000086002A0406005000543300000000860021040600500078330000000086008C089E035000C0330000000086004806A5035300000001003307000002002708020003009C0B000001003307020002009C0B00000100330700000100330700000200810100000100F602000002003606000001002A08000001006402020002002A08000001000C0D00000200D30600000300B301000001000C0D00000200D30600000300B301000001000C0D000001000C0D00000200D10A000001000C0D00000200D10A000001000C0D00000200D10A000001000C0D00000200A30B000001000C0D000001000C0D00000100640202000200D30602000300050B000001000C0D000002006C08000001000C0D000002006C08000001000C0D000002006C08000001000C0D000002006C08000001000C0D00000200D10A00000300D306000001000C0D000002006C08000003006B0D000001000C0D00000100D906000002009601000001007508000001000106000001000F0900000100EE09000001004D0D000001002007000002009A0600000300040300000400B70C000001002007000002009A0600000300040300000400B70C000001002E0900000200D506000003006B0D00000400B10D00000100E60800000200D40C000003000E0300000100050B000001002A0800000100D30600000200050B00000100160400000100160400000100160400000100A30600000100610A000001006B0D00000200B10D000003000106000001006B0D00000200B10D0000030001060400A90009000A00090055000900060009008D00090091000A000A000A0055000A0006000A008D000A0091000B000A000B0055000B0006000B008D000B0091000900EA0901001100EA0906001900EA090A002900EA0910003100EA0910003900EA0910004100EA0910004900EA0910005100EA0910005900EA0910006100EA0910007100EA090600A100EA0906001101EA0906001901F203060021011D0D15000C008F0C200021014B0B060021018F0C25001400DC093000A900DC093A003901EA0906004901EA094000890142034C0079009502520091012A0210009901FA03610099014D021000A1010100680081009C076D00B10165095200B101C8067400B9010B0779009901CD038000C901420786009100EA098B00D101FD0152009901FB0C010099017A031000D9012401A300D901580AA9009901B606AF0099015407860099002F04B4009900D90306009100EA09BC00B101990DD000D901900BA3009100EA09D600D9017402A300D9016B00A300D9011B01A300D9016101A300D9018002A300D10139035200D101D90306006900EA090600B101A50DE900B101510BEE00B1017D0DF400B101590BEE00B1016E075200B1016E07FE00B101DA0CFE00B101F501FE001C00F4051500E1011F031201B9005E061801C100620B2901B101EA092F01D1007106D000E9015E065200D1007D064D01F101F40A1500F9014F0D5401B1017F0B5801D100EA091000D1005C0266010902E301730109029603790111024C087F01D900B1031801E100DE058901E900DE058D01190247029101E100620B9701B1010E0BAA01F900EA091000210297070600E1015E06B0010101EA09B50129027E08250069005E0652005901EA090600C10000071500C100DE05520059012F02C00159012F02C70159012F02CE01B101AD0DDC015901AB06540159015E06DF01C100EA09100061013D0652005901EA09100069012F0410007101000715007101DE0554013102000BE9003102890DFF01F900110206022902320D10000101B3080C024102C60C1202B1010E0B16025102EA0910005102AB061E0259025E061801B1010E0B22026900720330026902FB025200E101CF023602710217034B027102A80C54017102DE0115007901E8055002B101C70A5A02B101AB0654010902B50154017902EA090600F901DE055200C900790671028101EA0986028902580A970299026D0D9D028902580AAC022000630002042E000B00B0032E001300B9032E001B00D8032E002300E1032E002B00E1032E003300EF032E003B00E1032E004300E1032E004B00E1032E005300E1032E005B00F5034000630002048300BB005F05A00063000204C30073000204E0006B00070420016B00020423017300020440016B00020443017300020460016B00020463017300020480016B000204A0016B000204C0016B000204E0016B00020400026B00020420026B00020460026B003F0480026B008A04A0026B000204C0026B000204E0026B00020400036B00020420036B00020440036B00020460036B00CE048004630002048005B3000204A005B3000204E005B30002040006B30002042006B30002044006B30002046006B30002048006B3000204A006B3000204E006B30002040007B30002042007B30002044007B30002046007B30002048007B3000204A007B3000204E007B30002040008B30002042008B30002044008B30002046008B300020401000C0000000D00470056009100C500DE00E300F90004011D013501400145015F016C0184019D01BC01D501E501EB0129023B0255025F0265026A0276027B0281028E02A702090001000A0003000B0005000000C90BAC030000070CAC030000C90BAC030000070CAC030000C90BAC030000070CAC0302002F00030002003100050002003700070002003900090002003F000B00020041000D0009005A001F0009005C00210009005E002300090060002500090062002700090064002900090066002B000A006A001F000A006C0021000A006E0023000A00700025000A00720027000A00740029000A0076002B000B007A001F000B007C0021000B007E0023000B00800025000B00820027000B00840029000B0086002B00190029000B01685C0000020004800000010000000000010000000000000098000000020000000000000000000000B2028A0100000000020000000000000000000000B202750100000000020000000000000000000000B2026507000000000700030008000300090003000A0003000B0003000C0005000D000600000000000056657273696F6E3130003C693E355F5F31003C46745F4765744E756D626572733E645F5F31004E756C6C61626C6560310049456E756D657261626C6560310049456E756D657261746F726031005F5F5374617469634172726179496E69745479706553697A653D3132006765745F55544633320053716C496E743332003C6D617463683E355F5F32003C3E735F5F32005461626C6532004461746162617365320046696C6C32003C3E735F5F33003C5265675F53706C69743E645F5F313400496E7436340046423833424542323345353342413637374634413934324246423431393538373737313137463834003C733E355F5F34003C537472696E675F53706C69743E645F5F31350055496E7431360053716C496E743136006765745F55544637006765745F55544638003C4D6F64756C653E003C50726976617465496D706C656D656E746174696F6E44657461696C733E00546F44424300546F534243006765745F41534349490053797374656D2E494F0053797374656D2E4461746100706F737444617461006D73636F726C6962007362006465630053797374656D2E436F6C6C656374696F6E732E47656E65726963006765745F4D616E616765645468726561644964003C3E6C5F5F696E697469616C54687265616449640052656164006765745F43757272656E74546872656164005472696D456E640052656164546F456E64004462436F6D6D616E6400437265617465436F6D6D616E640053716C436F6D6D616E640053656E6400417070656E6400446174614163636573734B696E64004D79526F756E64007365745F4D6574686F64005265675F5265706C61636500736F757263650046696C654D6F6465006765745F556E69636F6465006765745F426967456E6469616E556E69636F6465006765745F4D657373616765004D65726765005461626C650049456E756D657261626C650049446973706F7361626C650053716C446F75626C6500546F446F75626C650052756E74696D654669656C6448616E646C65005F777269746546696C650066696C65006765745F4E616D65007461626C654E616D650066696C654E616D65004765744E616D6500546F4461746554696D6500466F726D61744461746554696D6500526561644C696E65006765745F506970650053716C506970650056616C75655479706500536563757269747950726F746F636F6C547970650047657454797065007365745F436F6E74656E7454797065006D7950726F636564757265006765745F43757272656E7443756C74757265004361707475726500546F5469746C65436173650048747470576562526573706F6E736500476574526573706F6E736500436C6F73650053797374656D2E49446973706F7361626C652E446973706F73650043726561746500416363756D756C617465005465726D696E617465003C3E315F5F737461746500456E64577269746500426567696E577269746500436F6D70696C657247656E6572617465644174747269627574650044656275676761626C6541747472696275746500417373656D626C795469746C654174747269627574650053716C50726F6365647572654174747269627574650053716C55736572446566696E656441676772656761746541747472696275746500417373656D626C7954726164656D61726B41747472696275746500446562756767657248696464656E41747472696275746500417373656D626C7946696C6556657273696F6E41747472696275746500417373656D626C79436F6E66696775726174696F6E4174747269627574650053716C46756E6374696F6E41747472696275746500417373656D626C794465736372697074696F6E41747472696275746500436F6D70696C6174696F6E52656C61786174696F6E7341747472696275746500417373656D626C7950726F6475637441747472696275746500417373656D626C79436F7079726967687441747472696275746500417373656D626C79436F6D70616E794174747269627574650052756E74696D65436F6D7061746962696C697479417474726962757465006765745F56616C75650047657453716C56616C7565006765745F48617356616C75650076616C7565004942696E61727953657269616C697A6500537472696E675F4167670053797374656D2E546872656164696E6700456E636F64696E670052656164537472696E67005772697465537472696E670053716C537472696E6700546F537472696E67005265675F4D617463680049734D61746368004E6578744D6174636800436F6D70757465537472696E6748617368004D6174680073617665506174680073747250617468006765745F4C656E677468007365745F436F6E74656E744C656E67746800537461727473576974680069006F626A0076616C00466E5F4361636C005472696D416C6C004461746162617365322E646C6C0046696C6C006765745F49734E756C6C007365745F536563757269747950726F746F636F6C0073716C0047657455726C00506F737455726C0075726C0046696C6553747265616D00476574526573706F6E736553747265616D004765745265717565737453747265616D0053797374656D004D795472696D003C3E335F5F6E00426F6F6C65616E0073705F6765746D616E0073705F706F73746D616E004F70656E007365745F50726F746F636F6C56657273696F6E004874747056657273696F6E0053797374656D2E476C6F62616C697A6174696F6E0053797374656D2E5265666C656374696F6E004462436F6E6E656374696F6E0053716C436F6E6E656374696F6E004E6F74537570706F72746564457863657074696F6E0053797374656D2E446174612E436F6D6D6F6E006A736F6E0046696C65496E666F0043756C74757265496E666F004D656D626572496E666F006765745F54657874496E666F004469726563746F7279496E666F003C3E335F5F73700047726F757000657870004368617200457865637574655363616C61720057726974654E756D626572004462446174615265616465720053716C4461746152656164657200457865637574655265616465720053747265616D52656164657200546578745265616465720042696E6172795265616465720072656164657200537472696E674275696C6465720053657276696365506F696E744D616E61676572006F7468657200457863656C5772697465720042696E6172795772697465720077726974657200426974436F6E766572746572005F776972746572004D6963726F736F66742E53716C5365727665722E53657276657200546F4C6F7765720049456E756D657261746F720053797374656D2E436F6C6C656374696F6E732E47656E657269632E49456E756D657261626C653C53797374656D2E4F626A6563743E2E476574456E756D657261746F720053797374656D2E436F6C6C656374696F6E732E49456E756D657261626C652E476574456E756D657261746F72002E63746F720053797374656D2E446961676E6F73746963730053797374656D2E52756E74696D652E436F6D70696C6572536572766963657300446562756767696E674D6F6465730053797374656D2E446174612E53716C54797065730053746F72656450726F636564757265730047657442797465730076616C7565730042756C6B436F7079546F586C73004578706F7274586C730053797374656D2E546578742E526567756C617245787072657373696F6E730053797374656D2E436F6C6C656374696F6E730055736572446566696E656446756E6374696F6E73006765745F43686172730063686172730046745F4765744E756D626572730052756E74696D6548656C70657273006765745F53756363657373004578697374730043686172417400466F726D61740057726974654F626A6563740053797374656D2E4E65740053797374656D2E436F6C6C656374696F6E732E49456E756D657261746F722E5265736574005061644C656674005061645269676874006F705F496D706C69636974005265675F53706C697400537472696E675F53706C697400496E6974004361706974006765745F44656661756C7400726573756C7400666D740053797374656D2E446174612E53716C436C69656E7400456E7669726F6E6D656E740053797374656D2E436F6C6C656374696F6E732E47656E657269632E49456E756D657261746F723C53797374656D2E4F626A6563743E2E43757272656E740053797374656D2E436F6C6C656374696F6E732E49456E756D657261746F722E43757272656E740053797374656D2E436F6C6C656374696F6E732E47656E657269632E49456E756D657261746F723C53797374656D2E4F626A6563743E2E6765745F43757272656E740053797374656D2E436F6C6C656374696F6E732E49456E756D657261746F722E6765745F43757272656E74003C3E325F5F63757272656E74006765745F4669656C64436F756E74006D61785265636F7264436F756E74006765745F5469636B436F756E7400636F756E74005472696D537461727400436F6E76657274004874747057656252657175657374007365745F54696D656F7574003C3E335F5F696E7075740073705F52656164547874004D6F76654E6578740053797374656D2E54657874007365745F436F6D6D616E64546578740053716C436F6E746578740077006765745F496E646578005265675F43686172496E64657800526567657800496E697469616C697A65417272617900546F436861724172726179004372656174654469726563746F7279006F705F457175616C6974790049734E756C6C4F72456D707479000000010007470045005400000D680074007400700073003A00000950004F005300540000216100700070006C00690063006100740069006F006E002F006A0073006F006E00000F640065006600610075006C007400000F75006E00690063006F0064006500000B750074006600330032000009750074006600370000097500740066003800000B61007300630069006900002162006900670065006E006400690061006E0075006E00690063006F00640065000015730065006C0065006300740020007B0030007D00002F63006F006E007400650078007400200063006F006E006E0065006300740069006F006E003D00740072007500650000132000938F6551E14F6F600D4E8C5B746501FF010F2000005FCB59FC5BFA5170656E63011F7B0030007D002F007B0031007D005F007B0032007D002E0078006C007300003120008765F64E7B0030007D002C00200071517B0031007D00200061672C00200027590F5C7B0032007D002000575B8282010F2300230023002C00230023002300000F2000FC5BFA5170656E638C5B1062010F2D002D002D002D002D002D002D000123200071517B0030007D002000616770656E630CFF1780F6657B0031007D006D0073000115530071006C0042006F006F006C00650061006E00000F530071006C0042007900740065000015530071006C0044006500630069006D0061006C000013530071006C0044006F00750062006C0065000011530071006C0049006E007400310036000011530071006C0049006E007400330032000011530071006C0049006E007400360034000011530071006C004D006F006E00650079000013530071006C00530069006E0067006C00650000096E0075006C006C0000000000CBCE7E549884A64F9CFA9414C34D174E00042001010803200001052001011111042001010E032000020615128095011C04200013000320001C0615128099011C09200015128095011300052000128091062001011180A1040701123D0500001280C90320000E0A0705124112451249020E0600011280CD0E04061280D5062001011280D5042001020E060001011180E10520001280E5042000124D05200101124D1107090E12411D051245124D02124D12490E0500001280ED0520011D050E042001010A072003011D05080808200201124D1280ED0A070612490E0E0902123D050002020E0E072002010E1280ED040701111C050703020E02040001020E0520020E08030420001D03040702020E0520010E1D03060703020E115D0615115901115D050001115D1C0420010E0E0B07071D030211610802020205000111610E052001011D030A07071D03020E080202020407011120070704126502080206000212650E0E032000080620011D0E1D030607031269020E0520020E0E0E060703126D020E050000128105052000128109042000126D04070111710320000D032000060500020D0D0805000111710D0C07060E127D0E1280810E123D0500020E0E1C0400010E0E062002010E127D030701020620011280AD0E0620011280AD030620011280AD1C0607030E02116102060E0520020E080805070307020213070C02127D1280811280BD0808080E080A020206000112811D0E0520001280810520001280BD030000080700040E0E1C1C1C0320000A0600030E0E1C1C0607040E0E09020520001281310400010D0E0F070B08123007020702070202123D080420010E080420011C080407020908042001030805070308080204070112240607040802080204200012650407011228050703080208040701122C072002010E1181410807041D0708071D050500011D0507090002011281511181550407011D050500011D050D08B77A5C561934E08904061280AD0306113402060802061C0306126503061D0E04061280C1070003010E0E100E060002010E100E0500020E0E0E050002010E0E050001125508060002011C10080600030E0E080E0A00020E15115901115D0E080003011C1008100E06000212550E0E050002080E0E0600030E0E0E080600030E0E0E0E0800021171117111750520010111610520010112100420001161062001011280B1062001011280B50C0004011161116111611180B9070004010E0E0E070800040112301C0707080003081280BD070E040001090E05200201080E08200015128095011C052001011D070620030107070D0620030107070E0328001C0801000800000000001E01000100540216577261704E6F6E457863657074696F6E5468726F7773010801000701000000000D0100084945E5BC80E58F9100000501000000000C010007312E302E302E31000004010000003701000200540E1146696C6C526F774D6574686F644E616D650446696C6C540E0F5461626C65446566696E6974696F6E0756616C20696E744A01000200540E1146696C6C526F774D6574686F644E616D650546696C6C32540E0F5461626C65446566696E6974696F6E19696420696E742C56616C206E766172636861722834303030294301000200540E1146696C6C526F774D6574686F644E616D650546696C6C32540E0F5461626C65446566696E6974696F6E1256616C206E76617263686172283430303029808F010001005455794D6963726F736F66742E53716C5365727665722E5365727665722E446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D322E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038390A44617461416363657373010000006101000200000004005402124973496E76617269616E74546F4E756C6C73015402174973496E76617269616E74546F4475706C696361746573005402124973496E76617269616E74546F4F726465720054080B4D61784279746553697A65401F000000000000000000989BE65B00000000020000001C010000F45A0000F43C000052534453DA76129B1D60CD4FA4EBFFE5F3726DCC01000000443A5C4749545C4461746142617365325C4461746162617365325C6F626A5C44656275675C4461746162617365322E706462000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000385C00000000000000000000525C0000002000000000000000000000000000000000000000000000445C0000000000000000000000005F436F72446C6C4D61696E006D73636F7265652E646C6C0000000000FF2500200010090808000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001000000018000080000000000000000000000000000001000100000030000080000000000000000000000000000001000000000048000000586000000C03000000000000000000000C0334000000560053005F00560045005200530049004F004E005F0049004E0046004F0000000000BD04EFFE00000100000001000100000000000100010000003F000000000000000400000002000000000000000000000000000000440000000100560061007200460069006C00650049006E0066006F00000000002400040000005400720061006E0073006C006100740069006F006E00000000000000B0046C020000010053007400720069006E006700460069006C00650049006E0066006F00000048020000010030003000300030003000340062003000000022000500010043006F006D006D0065006E0074007300000049004500005FD153000000002A000500010043006F006D00700061006E0079004E0061006D0065000000000049004500005FD15300000000320005000100460069006C0065004400650073006300720069007000740069006F006E000000000049004500005FD15300000000300008000100460069006C006500560065007200730069006F006E000000000031002E0030002E0030002E00310000003C000E00010049006E007400650072006E0061006C004E0061006D00650000004400610074006100620061007300650032002E0064006C006C0000002E00050001004C006500670061006C0043006F007000790072006900670068007400000049004500005FD153000000003200050001004C006500670061006C00540072006100640065006D00610072006B0073000000000049004500005FD1530000000044000E0001004F0072006900670069006E0061006C00460069006C0065006E0061006D00650000004400610074006100620061007300650032002E0064006C006C0000002A0005000100500072006F0064007500630074004E0061006D0065000000000049004500005FD15300000000340008000100500072006F006400750063007400560065007200730069006F006E00000031002E0030002E0030002E003100000038000800010041007300730065006D0062006C0079002000560065007200730069006F006E00000031002E0030002E0030002E0031000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005000000C000000643C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
WITH PERMISSION_SET = UNSAFE
GO /* --报错
消息 10327,级别 14,状态 1,第 1 行
针对程序集 'Database2' 的 CREATE ASSEMBLY 失败,因为程序集 'Database2' 未获授权,
不满足 PERMISSION_SET = UNSAFE。满足以下两个条件之一时将给程序集授权:
数据库所有者(DBO)拥有 UNSAFE ASSEMBLY 权限,且数据库具有 TRUSTWORTHY 数据库属性;
或者,程序集已使用其对应登录名具有 UNSAFE ASSEMBLY 权限的证书或非对称密钥加以签名。 --解决
ALTER DATABASE master SET TRUSTWORTHY ON
go
*/ exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'clr enabled',1
reconfigure
exec sp_configure 'show advanced options',0
RECONFIGURE
go /*
DROP AGGREGATE String_Agg
DROP FUNCTION Capit
DROP FUNCTION Fn_Cacl
DROP FUNCTION FormatDateTime
DROP FUNCTION MyRound
DROP FUNCTION MyTrim
DROP FUNCTION PadLeft
DROP FUNCTION PadRight
DROP FUNCTION Reg_CharIndex
DROP FUNCTION Reg_Match
DROP FUNCTION Reg_Replace
DROP FUNCTION ToDBC
DROP FUNCTION ToSBC
DROP FUNCTION TrimAll
DROP FUNCTION TrimEnd
DROP FUNCTION TrimStart
DROP FUNCTION Ft_GetNumbers
DROP FUNCTION Reg_Split
DROP FUNCTION String_Split
DROP PROCEDURE BulkCopyToXls
DROP PROCEDURE sp_getman
DROP PROCEDURE sp_postman
DROP PROCEDURE sp_ReadTxt
DROP FUNCTION CharAt
DROP FUNCTION ft_clearing
DROP ASSEMBLY database2
*/
--CLR CREATE AGGREGATE [dbo].[String_Agg](@value NVARCHAR (4000))
RETURNS NVARCHAR (4000)
EXTERNAL NAME [Database2].[String_Agg]
go CREATE FUNCTION [dbo].[Capit]
(@input NVARCHAR (MAX))
RETURNS NVARCHAR (MAX)
AS
EXTERNAL NAME [Database2].[UserDefinedFunctions].[Capit] GO
CREATE FUNCTION [dbo].[Fn_Cacl]
(@exp NVARCHAR (1000))
RETURNS NVARCHAR (1000)
AS
EXTERNAL NAME [Database2].[UserDefinedFunctions].[Fn_Cacl] GO
CREATE FUNCTION [dbo].[FormatDateTime]
(@input DATETIME, @fmt NVARCHAR (200))
RETURNS NVARCHAR (200)
AS
EXTERNAL NAME [Database2].[UserDefinedFunctions].[FormatDateTime] GO
CREATE FUNCTION [dbo].[MyRound]
(@val FLOAT (53), @dec SMALLINT)
RETURNS FLOAT (53)
AS
EXTERNAL NAME [Database2].[UserDefinedFunctions].[MyRound] GO
CREATE FUNCTION [dbo].[MyTrim]
(@input NVARCHAR (MAX))
RETURNS NVARCHAR (MAX)
AS
EXTERNAL NAME [Database2].[UserDefinedFunctions].[MyTrim] GO
CREATE FUNCTION [dbo].[PadLeft]
(@input NVARCHAR (MAX), @i INT, @c NVARCHAR (1000))
RETURNS NVARCHAR (MAX)
AS
EXTERNAL NAME [Database2].[UserDefinedFunctions].[PadLeft] GO
CREATE FUNCTION [dbo].[PadRight]
(@input NVARCHAR (MAX), @i INT, @c NVARCHAR (1000))
RETURNS NVARCHAR (MAX)
AS
EXTERNAL NAME [Database2].[UserDefinedFunctions].[PadRight] GO
CREATE FUNCTION [dbo].[Reg_CharIndex]
(@input NVARCHAR (MAX), @sp NVARCHAR (1000))
RETURNS INT
AS
EXTERNAL NAME [Database2].[UserDefinedFunctions].[Reg_CharIndex] GO
CREATE FUNCTION [dbo].[Reg_Match]
(@input NVARCHAR (MAX), @sp NVARCHAR (1000))
RETURNS NVARCHAR (MAX)
AS
EXTERNAL NAME [Database2].[UserDefinedFunctions].[Reg_Match] GO
CREATE FUNCTION [dbo].[Reg_Replace]
(@input NVARCHAR (MAX), @sp NVARCHAR (1000), @x NVARCHAR (1000))
RETURNS NVARCHAR (MAX)
AS
EXTERNAL NAME [Database2].[UserDefinedFunctions].[Reg_Replace]
Go /*
CREATE FUNCTION [dbo].[ft_clearing]
(@input NVARCHAR (MAX))
RETURNS NVARCHAR (MAX)
AS
EXTERNAL NAME [Database2].[UserDefinedFunctions].[ft_clearing]
GO
*/ CREATE FUNCTION [dbo].[ToDBC]
(@input NVARCHAR (MAX))
RETURNS NVARCHAR (MAX)
AS
EXTERNAL NAME [Database2].[UserDefinedFunctions].[ToDBC] GO
CREATE FUNCTION [dbo].[ToSBC]
(@input NVARCHAR (MAX))
RETURNS NVARCHAR (MAX)
AS
EXTERNAL NAME [Database2].[UserDefinedFunctions].[ToSBC] GO
CREATE FUNCTION [dbo].[TrimAll]
(@input NVARCHAR (MAX), @chars NVARCHAR (100))
RETURNS NVARCHAR (MAX)
AS
EXTERNAL NAME [Database2].[UserDefinedFunctions].[TrimAll] GO
CREATE FUNCTION [dbo].[TrimEnd]
(@input NVARCHAR (MAX), @chars NVARCHAR (100))
RETURNS NVARCHAR (MAX)
AS
EXTERNAL NAME [Database2].[UserDefinedFunctions].[TrimEnd] GO
CREATE FUNCTION [dbo].[TrimStart]
(@input NVARCHAR (MAX), @chars NVARCHAR (100))
RETURNS NVARCHAR (MAX)
AS
EXTERNAL NAME [Database2].[UserDefinedFunctions].[TrimStart] GO
CREATE FUNCTION [dbo].[Ft_GetNumbers]
(@n INT)
RETURNS
TABLE (
[Val] INT NULL)
AS
EXTERNAL NAME [Database2].[UserDefinedFunctions].[Ft_GetNumbers] GO CREATE FUNCTION [dbo].[Reg_Split]
(@input NVARCHAR (MAX), @sp NVARCHAR (1000))
RETURNS
TABLE (
[id] INT,
[Val] NVARCHAR (4000) NULL)
AS
EXTERNAL NAME [Database2].[UserDefinedFunctions].[Reg_Split] GO
CREATE FUNCTION [dbo].[String_Split]
(@input NVARCHAR (MAX), @sp NVARCHAR (1))
RETURNS
TABLE (
[id] INT,
[Val] NVARCHAR (4000) NULL)
AS
EXTERNAL NAME [Database2].[UserDefinedFunctions].[String_Split] GO
CREATE PROCEDURE [dbo].[BulkCopyToXls]
@sql NVARCHAR (4000), @savePath NVARCHAR (1000), @tableName NVARCHAR (200), @maxRecordCount INT
AS EXTERNAL NAME [Database2].[myProcedure].[BulkCopyToXls] GO
CREATE PROCEDURE [dbo].[sp_getman]
@url NVARCHAR (1000), @result NVARCHAR (MAX) OUTPUT
AS EXTERNAL NAME [Database2].[StoredProcedures].[sp_getman] GO
CREATE PROCEDURE [dbo].[sp_postman]
@url NVARCHAR (1000), @json NVARCHAR (4000), @result NVARCHAR (MAX) OUTPUT
AS EXTERNAL NAME [Database2].[StoredProcedures].[sp_postman] GO
CREATE PROCEDURE [dbo].[sp_ReadTxt]
@file NVARCHAR (1000), @coding NVARCHAR (100)
AS EXTERNAL NAME [Database2].[StoredProcedures].[sp_ReadTxt] GO
CREATE FUNCTION [dbo].[CharAt]
(@input NVARCHAR (MAX), @chars NVARCHAR (100),@i int)
RETURNS NVARCHAR (MAX)
AS
EXTERNAL NAME [Database2].[UserDefinedFunctions].[CharAt]

C#源码

--1、 sql function 1

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
using System.Collections;
using System.Text.RegularExpressions;
using System.Globalization;
using System.Threading;
using System.Text; public partial class UserDefinedFunctions
{
/*
表值函数,生成N条记录,测试用,速度不错哦
*/
struct Table
{
public int n;
public Table(int n)
{
this.n = n;
}
} [SqlFunction(FillRowMethodName = "Fill", TableDefinition = "Val int")]
public static IEnumerable Ft_GetNumbers(int n)
{
for (int i = 1; i <= n; i++)
{
yield return new Table(i);
}
} private static void Fill(object source, out int n)
{
Table pi = (Table)source;
n = pi.n;
} [SqlFunction]
public static string PadLeft(string input, int i, string c)
{
if (input == null)
return null; //字符补齐
if (string.IsNullOrEmpty(c))
return input.PadLeft(i, ' ');
else
return input.PadLeft(i, c.ToCharArray()[]);
} [SqlFunction]
public static string PadRight(string input, int i, string c)
{
if (input == null)
return null; //字符补齐
if (string.IsNullOrEmpty(c))
return input.PadRight(i, ' ');
else
return input.PadRight(i, c.ToCharArray()[]);
} [SqlFunction]
public static string MyTrim(string input )
{
if (input == null)
return null; return input.Trim( );
} [SqlFunction]
public static string TrimAll(string input,string chars)
{
if (input == null)
return null; return input.Trim(chars.ToCharArray());
} [SqlFunction]
public static string TrimStart(string input, string chars)
{
if (input == null)
return null; return input.TrimStart(chars.ToCharArray());
} [SqlFunction]
public static string TrimEnd(string input, string chars)
{
if (input == null)
return null; return input.TrimEnd(chars.ToCharArray());
} [SqlFunction]
public static string FormatDateTime(DateTime? input, string fmt )
{
if (input==null)
{
return null;
}
return Convert.ToDateTime(input).ToString(fmt);
} [SqlFunction]
public static SqlString ToSBC(string input)
{
if (input == null)
return null; //半角转全角:
char[] c = input.ToCharArray();
for (int i = 0; i < c.Length; i++)
{
if (c[i] == 32)
{
c[i] = (char)12288;
continue;
}
if (c[i] < 127)
c[i] = (char)(c[i] + 65248);
} return new string(c);
}
[SqlFunction]
public static string ToDBC(string input)
{
if (input == null)
return null; //全角转半角:
char[] c = input.ToCharArray();
for (int i = 0; i < c.Length; i++)
{
if (c[i] == 12288)
{
c[i] = (char)32;
continue;
}
if (c[i] > 65280 && c[i] < 65375)
c[i] = (char)(c[i] - 65248);
}
return new string(c);
} /*
表值函数,字符串拆分,这个有用
*/
struct Table2
{
public string s;
public int i;
public Table2(int i, string s)
{
this.i=i;
this.s = s;
} } private static void Fill2(object source,out int i, out string s)
{
Table2 T = (Table2)source;
s = T.s;
i = T.i;
} /*
表值函数,字符提取,可以写正则表达式匹配和替换的函数,有用
*/
[SqlFunction(FillRowMethodName = "Fill2", TableDefinition = "id int,Val nvarchar(4000)")]
public static IEnumerable Reg_Split(string input, string sp)
{
if (input != null)
{
int i = 1;
Match match = Regex.Match(input, sp);
while (match.Success)
{ yield return new Table2(i++,match.Value);
match = match.NextMatch();
}
}
} [SqlFunction(FillRowMethodName = "Fill2", TableDefinition = "Val nvarchar(4000)")]
public static IEnumerable String_Split(string input, string sp)
{
if (input != null)
{
int i = 1;
foreach (string s in input.Split(sp.ToCharArray()[]))
{
yield return new Table2(i++,s);
}
}
} [SqlFunction]
public static string Reg_Match(string input, string sp)
{
if (input == null)
return null;
return Regex.IsMatch(input, sp).ToString();
} [SqlFunction]
public static int Reg_CharIndex(string input, string sp)
{
if (input == null)
return -1; Match match = Regex.Match(input, sp);
if (match.Success)
return match.Index + 1;
return 0;
} [SqlFunction]
public static string CharAt(string input, string chars, int i)
{
if (input == null)
return null; try
{
return input.Split(chars.ToCharArray()[])[i];
}
catch
{
return null;
}
} [SqlFunction]
public static string Reg_Replace(string input, string sp, string x)
{
if (input == null)
return null; Regex rx = new Regex(sp);
return rx.Replace(input, x);
} [SqlFunction]
public static string ft_clearing(string input)
{
if (input == null)
return ""; Regex rx = new Regex(@"\s");
return rx.Replace(input, "").Trim();
} [SqlFunction]
public static string Capit(string input)
{
if (input == null)
return null; //首字母大写,很有用,速度非常好,神速
TextInfo tx = Thread.CurrentThread.CurrentCulture.TextInfo;
return tx.ToTitleCase(input);
} [Microsoft.SqlServer.Server.SqlFunction]
public static SqlDouble MyRound(SqlDouble val, SqlInt16 dec)
{
return Math.Round( val.Value, dec.Value);
} [SqlFunction(DataAccess = DataAccessKind.Read)]
public static string Fn_Cacl(string exp)
{
string sql = string.Format("select {0}", exp); using (SqlConnection cn = new SqlConnection("context connection=true"))
{
cn.Open();
string select = Convert.ToString(sql); try
{
SqlCommand cmd = new SqlCommand(Convert.ToString(sql), cn);
return cmd.ExecuteScalar().ToString(); }
catch (Exception ex)
{
return null;
}
} } } -- 2、SqlAggregate1.cs
using System;
using System.Data;
using Microsoft.SqlServer.Server;
using System.Data.SqlTypes;
using System.IO;
using System.Text; [Serializable]
[SqlUserDefinedAggregate(Format.UserDefined, IsInvariantToNulls = true, IsInvariantToDuplicates = false, IsInvariantToOrder = false, MaxByteSize = 8000)]
public class String_Agg : IBinarySerialize
{
//字符串拼接,这个有用
private StringBuilder sb; public void Init()
{
this.sb = new StringBuilder();
} public void Accumulate(SqlString value)
{
if (value.IsNull)
{
return;
} this.sb.Append(value.Value).Append(',');
} public void Merge(String_Agg other)
{
this.sb.Append(other.sb);
} public SqlString Terminate()
{
string output = string.Empty;
if (this.sb != null
&& this.sb.Length > 0)
{
output = this.sb.ToString(0, this.sb.Length - 1);
} return new SqlString(output);
} public void Read(BinaryReader r)
{
sb = new StringBuilder(r.ReadString());
} public void Write(BinaryWriter w)
{
w.Write(this.sb.ToString());
}
} --3、SqlStoredProcedure1.cs
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
using System.Net;
using System.IO;
using System.Text; public partial class StoredProcedures
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void sp_postman(string url,string json,out string result)
{
result = "";
try
{
result = PostUrl(url, json);
}
catch (Exception ex)
{
SqlContext.Pipe.Send(ex.Message);
} } [Microsoft.SqlServer.Server.SqlProcedure]
public static void sp_getman(string url, out string result)
{
result = "";
try
{
result = GetUrl(url);
}
catch (Exception ex)
{
SqlContext.Pipe.Send(ex.Message);
} } public static string GetUrl(string url )
{ HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
req.Method = "GET";
req.ProtocolVersion = HttpVersion.Version10;
if (url.ToLower().StartsWith("https:"))
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
}
else
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
}
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
StreamReader rd = new StreamReader(res.GetResponseStream());
return rd.ReadToEnd();
} public static string PostUrl(string url, string postData)
{
string result = ""; HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "POST"; req.Timeout = 5000; req.ContentType = "application/json"; req.ProtocolVersion = HttpVersion.Version10; if (url.ToLower().StartsWith("https:"))
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
}
else
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
} byte[] data = Encoding.UTF8.GetBytes(postData); req.ContentLength = data.Length; using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(data, 0, data.Length); reqStream.Close();
} HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); Stream stream = resp.GetResponseStream(); //获取响应内容
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
result = reader.ReadToEnd();
} return result;
} [Microsoft.SqlServer.Server.SqlProcedure]
public static void sp_ReadTxt(string file,string coding)
{
try
{
StreamReader sr = null; switch (coding.ToLower())
{
case "default":
sr = new StreamReader(file, System.Text.Encoding.Default);
break;
case "unicode":
sr = new StreamReader(file, System.Text.Encoding.Unicode);
break;
case "utf32":
sr = new StreamReader(file, System.Text.Encoding.UTF32);
break;
case "utf7":
sr = new StreamReader(file, System.Text.Encoding.UTF7);
break;
case "utf8":
sr = new StreamReader(file, System.Text.Encoding.UTF8);
break;
case "ascii":
sr = new StreamReader(file, System.Text.Encoding.ASCII);
break;
case "bigendianunicode":
sr = new StreamReader(file, System.Text.Encoding.BigEndianUnicode);
break;
default:
sr = new StreamReader(file, System.Text.Encoding.Default);
break;
}
string line;
while ((line = sr.ReadLine()) != null)
{
SqlContext.Pipe.Send(line);
}
sr.Close();
}
catch (Exception ex)
{
SqlContext.Pipe.Send(ex.Message);
}
}
} --4、SqlStoredProcedure2.cs using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server; public partial class myProcedure
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void BulkCopyToXls(SqlString sql, SqlString savePath, SqlString tableName, SqlInt32 maxRecordCount)
{
if (sql.IsNull || savePath.IsNull || tableName.IsNull)
{
SqlContext.Pipe.Send(" 输入信息不完整!");
} //每个excel文件最大容纳65534
ushort _maxRecordCount = ushort.MaxValue - 1; if (maxRecordCount.IsNull == false && maxRecordCount.Value < ushort.MaxValue && maxRecordCount.Value > 0)
_maxRecordCount = (ushort)maxRecordCount.Value; ExportXls(sql.Value, savePath.Value, tableName.Value, _maxRecordCount);
} private static void ExportXls(string sql, string savePath, string tableName, System.UInt16 maxRecordCount)
{
//创建文件路径
if (System.IO.Directory.Exists(savePath) == false)
{
System.IO.Directory.CreateDirectory(savePath);
} using (SqlConnection conn = new SqlConnection("context connection=true"))
{
conn.Open();
using (SqlCommand command = conn.CreateCommand())
{
command.CommandText = sql;
using (SqlDataReader reader = command.ExecuteReader())
{
int i = 0;
int totalCount = 0;
int tick = System.Environment.TickCount; SqlContext.Pipe.Send(" 开始导出数据");
while (true)
{
string fileName = string.Format(@"{0}/{1}_{2}.xls", savePath, tableName, i++);
int iExp = Write(reader, maxRecordCount, fileName);
long size = new System.IO.FileInfo(fileName).Length;
totalCount += iExp;
SqlContext.Pipe.Send(string.Format(" 文件{0}, 共{1} 条, 大小{2} 字节", fileName, iExp, size.ToString("###,###")));
if (iExp < maxRecordCount) break;
} tick = System.Environment.TickCount - tick;
SqlContext.Pipe.Send(" 导出数据完成");
SqlContext.Pipe.Send("-------");
SqlContext.Pipe.Send(string.Format(" 共{0} 条数据,耗时{1}ms", totalCount, tick));
}
}
} } private static void WriteObject(ExcelWriter writer, object obj, System.UInt16 x, System.UInt16 y)
{
//判断写数字还是写字符
string type = obj.GetType().Name.ToString();
switch (type)
{
case "SqlBoolean":
case "SqlByte":
case "SqlDecimal":
case "SqlDouble":
case "SqlInt16":
case "SqlInt32":
case "SqlInt64":
case "SqlMoney":
case "SqlSingle":
if (obj.ToString().ToLower() == "null")
writer.WriteString(x, y, obj.ToString());
else
writer.WriteNumber(x, y, Convert.ToDouble(obj.ToString()));
break;
default:
writer.WriteString(x, y, obj.ToString());
break;
}
} private static int Write(SqlDataReader reader, System.UInt16 count, string fileName)
{
int iExp = count;
ExcelWriter writer = new ExcelWriter(fileName);
writer.BeginWrite(); try
{
//写字段信息
for (System.UInt16 j = 0; j < reader.FieldCount; j++)
{
writer.WriteString(0, j, reader.GetName(j));
} //循环一行一行读入数据
for (System.UInt16 i = 1; i <= count; i++)
{
if (reader.Read() == false)
{
iExp = i - 1;
break;
}
//循环一格一格写入数据
for (System.UInt16 j = 0; j < reader.FieldCount; j++)
{
WriteObject(writer, reader.GetSqlValue(j), i, j);
}
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
writer.EndWrite();
}
return iExp;
} public class ExcelWriter
{
System.IO.FileStream _wirter;
//创建文件
public ExcelWriter(string strPath)
{
_wirter = new System.IO.FileStream(strPath, System.IO.FileMode.OpenOrCreate);
} //写数组
private void _writeFile(System.UInt16[] values)
{
foreach (System.UInt16 v in values)
{
byte[] b = System.BitConverter.GetBytes(v);
_wirter.Write(b, 0, b.Length);
}
} //写文件头
public void BeginWrite()
{
_writeFile(new System.UInt16[] { 0x809, 8, 0, 0x10, 0, 0 });
}
//文件尾
public void EndWrite()
{
_writeFile(new System.UInt16[] { 0xa, 0 });
_wirter.Close();
}
//写数字到单元格
public void WriteNumber(System.UInt16 x, System.UInt16 y, double value)
{
_writeFile(new System.UInt16[] { 0x203, 14, x, y, 0 });
byte[] b = System.BitConverter.GetBytes(value);
_wirter.Write(b, 0, b.Length);
}
//写字符到单元格
public void WriteString(System.UInt16 x, System.UInt16 y, string value)
{
byte[] b = System.Text.Encoding.Default.GetBytes(value);
_writeFile(new System.UInt16[] { 0x204, (System.UInt16)(b.Length + 8), x, y, 0, (System.UInt16)b.Length });
_wirter.Write(b, 0, b.Length);
}
}
};

C#源码

一些常用的字符串函数(CLR函数)的更多相关文章

  1. php中常用的字符串大小写转换函数实例解释

    PHP字符串处理函数中,最为简单的几个函数,相关解释就不上了,直接看例子. PHP字符串处理函数中,最为简单的几个函数,相关解释就不上了,直接看例子. strtolower函数.strtoupper函 ...

  2. 常用处理字符串的SQL函数

    汇总函数:Count.Sum.AVG.MAX.min; 数学函数: ABS:绝对值.floor:给出比给定值小的最大整数. round(m,n):m为给定的值,n为小数点后保留的位数. power(m ...

  3. python中常用得字符串,列表函数汇总

    字符串函数: 1,replace函数,替换函数.s = s.replace(old,new),老得元素被新的元素替换.注意不能直接写s.replace(old,new).要写s=s.replace(o ...

  4. SQL Server通过外部程序集注册正则表达式函数(CLR函数) [转]

    转自:http://blog.csdn.net/binguo168/article/details/76598581 1.下载dll程序集(通过C#编写的支持正则的方法),百度网盘下载: 1.1如果只 ...

  5. php中常用的字符串查找函数strstr()、strpos()实例解释

    string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] ) 1.$haystack被查找的字 ...

  6. LoadRunner中常用的字符串操作函数

    LoadRunner中常用的字符串操作函数有:                strcpy(destination_string, source_string);               strc ...

  7. Js中常用的字符串,数组,函数扩展

    由于最近辞职在家,自己的时间相对多一点.所以就根据prototytpeJS的API,结合自己正在看的司徒大神的<javascript框架设计>,整理了下Js中常用一些字符串,数组,函数扩展 ...

  8. php中比较复杂但又常用的字符串函数

    php系统核心库自带的函数中,字符串比数组函数较为简单,但还是有一些较为复杂但又很常用的函数,比如下面的这些函数 explode()函数 用一个字符串来分割另一个字符串,返回结果是一个数组 explo ...

  9. PHP开发中常用的字符串操作函数

    1,拼接字符串 拼接字符串是最常用到的字符串操作之一,在PHP中支持三种方式对字符串进行拼接操作,分别是圆点.分隔符{}操作,还有圆点等号.=来进行操作,圆点等号可以把一个比较长的字符串分解为几行进行 ...

  10. C++常用的字符串处理函数-全

    这是自己用stl实现的一些字符串处理函数和常用的字符串处理技巧,经验正基本无误,可直接使用,若有问题,可相应列出 包括:split string to int int to string join # ...

随机推荐

  1. 【leetcode】1262. Greatest Sum Divisible by Three

    题目如下: Given an array nums of integers, we need to find the maximum possible sum of elements of the a ...

  2. QT5线程关闭

    QT5线程关闭 QThread析构函数的说明:请注意,删除一个QThread对象不会停止它管理的线程的执行. 删除正在运行的QThread(即isFinished()返回false)将导致程序崩溃. ...

  3. Confluence 6 图片文件

    当你对一个页面进行编辑的时候,选择一个图片,将会显示图片属性面板.这个面板允许你设置显示大小,添加边控和特效和链接这个图片到其他页面. 从图片的属性面板,你可以: 为以图片选择一个 显示大小(pres ...

  4. 51 Nod 一维战舰

    1521 一维战舰  题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 爱丽丝和鲍博喜欢玩一维战舰的游戏.他们在一行 ...

  5. happens-before规则和as-if-serial语义

    JSR-133使用happens-before的概念来阐述操作之间的内存可见性.在JMM中,如果一个操作执行的结果需要对另一个操作可见, 那么这2个操作之间必须要存在happens-before关系. ...

  6. PHP 判断当前日期是否是法定节假日或者休息日 (原)

    //判断日期是不是节假日或者双休日接口 @param time [时间(时间戳或者Y-m-d都可)] public function get_type_by_date(){ $t = $_GET['t ...

  7. Nginx配置记录【例1】

    A服务器,例: [root@localhost conf.d]# egrep -v "^#|^$" /etc/nginx/nginx.conf user nginx; worker ...

  8. sqlmap自动注入1(Target完整的超级详细 如有错误望指出)

    SQLmap的自动注入学习之路(1) 是通过五种sql注入漏洞的检测技术 ' and(select*from(select(sleep(20)))a)# 这是基于时间的盲注检测 看他返回的时间 可以在 ...

  9. BootStrap之X-editable插件使用

    项目背景 刚加入公司的新项目,主要在做开发工作.由于是新手,本周的工作是配合另外一个同事写前台页面.前台框架是Bootstrap,本文主要介绍一下项目需求的一个功能——表格行内编辑事件. 使用X-ed ...

  10. C++入门经典-例3.8-使用条件表达式判断一个数是否是3和5的整倍数

    1:代码如下: // 3.8.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> using ...