SQL CLR ¼¯³É
Ò»¡¢ÅäÖà SQL Server£¬Ê¹Ö®ÔÊÐí CLR ¼¯³É:
¡¡¡¡1.µ¥»÷“¿ªÊ¼”°´Å¥£¬ÒÀ´ÎÖ¸Ïò“ËùÓгÌÐò”¡¢Microsoft SQL Server 2005 ºÍ“ÅäÖù¤¾ß”£¬È»ºóµ¥»÷“ÍâΧӦÓÃÅäÖÃÆ÷”¡£
¡¡¡¡2.ÔÚ SQL Server 2005 ÍâΧӦÓÃÅäÖÃÆ÷¹¤¾ßÖУ¬µ¥»÷“¹¦ÄܵÄÍâΧӦÓÃÅäÖÃÆ÷”¡£
¡¡¡¡3.Ñ¡ÔñÄúµÄ·þÎñÆ÷ʵÀý£¬Õ¹¿ª“Êý¾Ý¿âÒýÇæ”Ñ¡ÏȻºóµ¥»÷“CLR ¼¯³É”¡£
¡¡¡¡4.Ñ¡Ôñ“ÆôÓà CLR ¼¯³É”¡£
´ËÍ⣬Äú¿ÉÒÔÔÚ SQL Server ÖÐÔËÐÐÒÔϲéѯ£¨´Ë²éѯÐèÒª ALTER SETTINGS ȨÏÞ£©:
USE [database]
sp_configure 'clr enabled', 1;
GO
RECONFIGURE;
GO
¶þ¡¢´´½¨ SQL Server Project£¬ÅäÖÃÊý¾Ý¿âÁ¬½ÓÐÅÏ¢¡£ÓÒ¼ü´ò¿ª¸ÃÏîÄ¿ÊôÐÔ£¬Ñ¡Ôñ“database ”£¬½«Permission LevelÉèΪ“unsafe”
Èý¡¢
ÏîÄ¿´´½¨ºóÌí¼ÓÒ»¸ö.cs Îļþ£¬ÈçÏÂÑÝʾÈçºÎ½øÐбíÖµº¯ÊýÀ©Õ¹
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Server;
using System.Diagnostics;
using System.Data.SqlTypes;
using System.Collections;
public partial class FuncTest
{
//±íÖµº¯Êý¶¨Òå.µÚÒ»¸ö·½·¨ (InitMethod) ¸³Óè SqlFunction ÊôÐÔ£¬ÓÃÓÚ½«ËüÖ¸¶¨Îª¸Ã±íÖµº¯ÊýµÄÈë¿Úµã
//´Ë·½·¨±ØÐë·µ»Ø IEnumerable »ò IEnumerator ¶ÔÏ󡣸öÔÏó°üº¬½«ÓÃÓÚÌî³ä·µ»Ø±íµÄÊý¾Ý¡£
//Ö´Ðиú¯Êýʱ£¬SQL Server ½«Ñ»··ÃÎÊ IEnumerator ¶ÔÏóÖеÄÿ¸ö¶ÔÏ󣬲¢Ê¹ÓÃËüÀ´Ìî³äÊý¾ÝÐС£
//Ϊ´Ë£¬ËüÒª½«¸Ã¶ÔÏ󴫵ݵ½¸ÃÀàÖеĵڶþ¸ö·½·¨ FillRow¡£´Ë·½·¨»á½«¸Ã¶ÔÏóת»»³É·µ»Ø±íÖеÄijһÐС£
//´Ë·½·¨ÔÚ SqlFunction ÊôÐ﵀ FillRowMethodName ²ÎÊýÖÐÖ¸¶¨
//²¿ÊðÏîÄ¿ºóÔÚÊý¾Ý¿âÖлáÉú³ÉÏàÓ¦µÄ±íÖµº¯Êýdbo.ReadEventLog
[SqlFunction(TableDefinition = "logTime datetime,Message nvarchar(4000),Category nvarchar(4000),InstanceId bigint",
Name = "ReadEventLog", FillRowMethodName = "F
Ïà¹ØÎĵµ£º
ϵͳ»·¾³£ºWindows 7
Èí¼þ»·¾³£ºVisual C++ 2008 SP1 +SQL Server 2005
±¾´ÎÄ¿µÄ£º±àдһ¸öº½¿Õ¹ÜÀíϵͳ
ÕâÊÇÊý¾Ý¿â¿Î³ÌÉè¼ÆµÄ³É¹û£¬ËäÈ»³É¼¨²»¼Ñ£¬µ«ÊÇ×÷ΪÎÒÓÃVC++ ÒÔÀ´±àдµÄ×î´ó³ÌÐò»¹ÊÇ´«µ½ÍøÉÏ£¬ÒÔ¹©²Î¿¼¡£ÓÃVC++ ×öÊý¾Ý¿âÉè¼Æ²¢²»ÈÝÒ×£¬µ«Ò²²»ÊDz»¿ÉÄÜ¡£ÒÔÏÂÊÇÎҵijÌÐò½çÃæ£¬ºóÃæ ......
¡¾IT168 ¼¼Êõ·ÖÎö¡¿ÔÚÏò2009Äê¸æ±ðÖ®¼Ê£¬ÎÒÃÇÀ´»Ø¹ËһϹýÈ¥µÄÒ»ÄêÖÐ×îÊÜ»¶ÓµÄSQL Server¼¼ÇÉ£¬°üÀ¨ÁËOPENROWSET¡¢FILESTREAMµÈº¯ÊýµÄÓ÷¨¡¢ÃÜÂ빤¾ß½éÉÜÒÔ¼°DBAÈÕ³£¹¤×÷½¨ÒéµÈÄÚÈÝ¡£
¡¡¡¡Í¨¹ý¶ÔÕâЩ¾«»ªÎÄÕµÄÔٴλعˣ¬Ï£Íû¿ÉÒÔ°ïÖúÄúÊáÀíÒ»ÏÂÕâÒ»ÄêÒÔÀ´µÄ¹¤×÷ÒÔ¼°Ñ§Ï°Ðĵ㬶ÔδÀ´Ò»Äê¸ü½øÒ»²½´òϸü¼áʵµÄ»ù´¡¡£
¡¡¡ ......
×òÌì½âÎöÁËdblp.xml£¬´æÈëÊý¾Ý¿â£¬Éú³ÉÁËÈô¸ÉÕÅÁÙʱ±í¡£½ñÌìÉÏÎ磬¶ÔÕâЩÁÙʱ±í½øÐд¦Àí£¬È»ºó´æÈëʵÑéÉè¼ÆµÄ±íÖС£Êý¾Ý¿âµÄÊý¾ÝÁ¿±È½Ï´ó£¬50¶àM£¬80¶àÍòÌõ¼Ç¼¡£Òò¶øÖ´ÐÐsqlʱ£¬¾ÍÓöµ½Á˺ܶàÎÊÌâ¡£
1¡¢È¥³ýÖØ¸´tuple
Ôʼdblp.xmlÖУ¬Í¬Ò»ÂÛÎĵĴæÔÚ¼¸¸öÍêÈ«ÏàͬµÄ&l ......
×î½üÓõ½ÈÕÆÚ·¶Î§µÄ²éѯ£¬Óõ½ÁËbetween£¬µ«ÊÇ·¢ÏÖÈç¹ûÈÕÆÚ´øÊ±¼äµÄ»°£¬BETWEEN '2010-1-4' AND
'2010-1-4'ÕâÑùµÄÓï¾äÊDz鲻µ½Êý¾ÝµÄ£¬ºóÀ´Ïëµ½ÁËÒ»ÖָĽø·½·¨£¬¹©´ó¼Ò²Î¿¼¡£
ÈçÏ£º
BETWEEN '2010-1-4' AND DATEADD(day, 1, '2010-1-4')
ÓÃÁËDATEADDÒÔºó£¬Ð§¹ûºÜ²»´í ......
SQLº¯Êý
ÔÚSQLÖУ¬º¯Êý¶ÔÊý¾Ý»òÊý¾Ý×éÖ´ÐвÙ×÷£¬È»ºó·µ»ØÐèÒªµÄÖµ¡£º¯Êý±í´ïʽ¿ÉÒÔ³öÏÖÔÚSELECTÁбíÖУ¬»òÕß
ÔÚÈκÎÔÊÐí³öÏÖµÄλÖÃÉÏ¡£SQL°üº¬ÁËÆßÖÖº¯Êý:
(1)¾ÛºÏº¯Êý:·µ»Ø»ã×ÜÖµ¡£
(2)תÐͺ¯Êý:½«Ò»ÖÖÊý¾ÝÀàÐÍת»»ÎªÁíÍâÒ»ÖÖ¡£
(3)ÈÕÆÚº¯Êý:´¦ÀíÈÕÆÚºÍʱ¼ä¡£
(4)Êýѧº¯Êý:Ö´ÐÐËãÊõÔËËã¡£
(5)×Ö·û´®º¯Êý:¶Ô×Ö·û´ ......