SQL Server CLRÈ«¹¦ÂÔÖ®¶þ
´ÓÕâÒ»½Ú¿ªÊ¼ÄØ£¬ÎÒÃǾÍÒª¿ªÊ¼CLRµÄ±à³ÌÖ®ÂÃÁË¡£ÔÚÕâ֮ǰ£¬ÎÒÏȰѱ¾½ÚÖÐÐèÒªÁ˽âµÄÁ½¸öÐÂÀàSqlDataRecordºÍSqlMetaData£¬¼°Îå¸öз½·¨SqlContext.Pipe.SendResultsStart£¬SqlContext.Pipe.SendResultsRow£¬SqlContext.Pipe.SendResultsEnd£¬SqlContext.Pipe.SendºÍSqlContext.Pipe.ExecuteAndSend½øÐÐһϱØÒªµÄ˵Ã÷£¬·½±ã´ó¼ÒÔĶÁºóÐøµÄ´úÂë¡£
Ê×ÏÈSqlDataRecordºÍSqlMetaDataÊÇÊý¾Ý¼¯ºÏºÍÔÊý¾ÝµÄÒâ˼¡£¿ÉÒÔ¼òµ¥µÄ°ÑSqlDataRecordÀí½â³ÉDataTable£¬°ÑSqlMetaDataÀí½â³ÉDataColumn¡£ÎÒÃÇÔÙÏòSqlDataRecordÀïÃæÌî³äÊý¾Ý֮ǰҪÏÈÖ´ÐÐSqlContext.Pipe.SendResultStart()·½·¨£¬¸æËßÊý¾Ý¿âÏÂÃæ¿ªÊ¼Ìî³äÊý¾Ý£¬Ê¹ÓÃSqlContext.Pipe.SendResultRow·½·¨À´Ìî³äÊý¾Ý£¬Ìî³ä½áÊøºóʹÓÃSqlContext.Pipe.SendResultEnd·½·¨À´½áÊøÌî³ä¡£ÕâЩ¶¼ÊÇ»ù±¾Á÷³Ì£¬Ã»Ê²Ã´ºÃ½âÊ͵ģ¬Ö»ÒªÕÕ×ÅÈ¥×ö¾Í¿ÉÒÔÁË¡£
SqlContext.Pipe.SendÊÇÏò¿Í»§¶Ë·¢ËÍÒ»Ìõ½á¹û£¬SqlContext.Pipe.ExecuteAndSendÊÇÖ´ÐÐÒ»ÌõÓï¾ä¡£
ÏÂÃæÎÒ½«Óü¸¸öʵ¼ÊµÄ¼òµ¥Àý×ÓÀ´ËµÃ÷ÈçºÎʹÓÃÕ⼸¸ö·½·¨¡£
1.ʹÓÃSqlContext.Pipe.Send¹¹½¨ÎÞ²ÎÎÞ·µ»ØÖµµÄ´æ´¢¹ý³Ì
[Microsoft.SqlServer.Server.SqlProcedure]
public static void USP_SayHello()
{
SqlContext.Pipe.Send("USP:Hello TJVictor!");
}
2.ʹÓÃSqlContext.Pipe.Send¹¹½¨´ø²ÎÎÞ·µ»ØÖµµÄ´æ´¢¹ý³Ì
[Microsoft.SqlServer.Server.SqlProcedure]
public static void USP_SayHelloByParameter(SqlString msg)
{
SqlContext.Pipe.Send(msg.ToString());
}
3.ʹÓÃSqlContext.Pipe.Send¹¹½¨´ø²ÎÓзµ»ØÖµµÄ´æ´¢¹ý³Ì
[Microsoft.SqlServer.Server.SqlProcedure]
public static SqlInt32 USP_SayHelloByReturn(SqlString msg)
{
return msg.ToString().Length;
}
4.ʹÓÃSqlCommandÀ´Ö´ÐÐÓï¾ä£¬×¢ÒâÕâÀïʹÓÃÁËSQL Server×Ô´øµÄpubsÊý¾Ý¿â
[Microsoft.SqlServer.Server.SqlProcedure]
public static void USP_ExecuteBySqlCommand(SqlString stor_id, SqlString stor_name)
{
//ÓÉÓÚ³ÌÐòÊÇÔÚSQL ServerÄÚÖ´ÐУ¬ËùÒÔÁ¬½Ó×Ö·û´®Ð´³É"context connection=true"¼´¿É
using (SqlConnection con = new SqlConnection("context connection=true"))
{
con.Open
Ïà¹ØÎĵµ£º
Microsoft SQL Server ÏÖÔھ߱¸Óë Microsoft Windows .NET Framework µÄ¹«¹²ÓïÑÔÔËÐÐʱ (CLR) ×é¼þ¼¯³ÉµÄ¹¦ÄÜ¡£CLR ΪÍйܴúÂëÌṩ·þÎñ£¬ÀýÈç¿çÓïÑÔ¼¯³É¡¢´úÂë·ÃÎʰ²È«ÐÔ¡¢¶ÔÏóÉú´æÆÚ¹ÜÀíÒÔ¼°µ÷ÊԺͷÖÎöÖ§³Ö¡£¶ÔÓÚ SQL Server Óû§ºÍÓ¦ÓóÌÐò¿ª·¢ÈËÔ±À´Ëµ£¬CLR ¼¯³ÉÒâζ×ÅÄúÏÖÔÚ¿ÉÒÔʹÓÃÈκ ......
ÎÒÃÇÔÚ×öºÜ¶àÏîĿʱ¶¼ÒªÉæ¼°µ½Êý¾Ý¿â£¬ÌرðÊÇһЩ±È½Ï´óÐ͵ÄwebÏîÄ¿£¬¸üÊÇÓнϴóµÄ²¢·¢´¦Àí£¬ËùÒÔ¶ÔÊý¾Ý¿âµÄ²Ù×÷ÓпÉÄÜ»á²úÉúËÀËø£¬¶ÔÓÚÊý¾Ý¿âµÄËÀËø£¬Ò»°ãÊý¾Ý¿âϵͳ¶¼»áÓÐÒ»Ì×»úÖÆÈ¥½âËø£¬Ò»°ã²»»áÔì³ÉÊý¾Ý¿âµÄ̱»¾£¬µ«½âËøµÄ¹ý³Ì»áÔì³ÉÊý¾Ý¿âÐÔÄܵļ±ËÙϽµ£¬·´Ó³µ½³ÌÐòÉϾͻáÔì³É³ÌÐòµÄ·´Ó¦ÐÔÄܵÄϽµ£¬²¢ ......
Õ⼸ÌìÊÖÍ·¿ª·¢µÄϵͳҪ×öÒ»¸öÀàËÆwindowsÕË»§µ½ÆÚʱ¼äµÄ¹¦ÄÜ£¬¿¼ÂÇÁ˰ëÌìÏë³öÁËÒ»¸ö¼¼ÊõÉϺÍÂß¼É϶¼»¹ÄÜʵÏֵĽâ¾ö·½°¸£º
´´½¨Ò»¸öÓû§´æÈëÊý¾Ý¿âµÄʱºò¶¼´´½¨Ò»¸öʼþµ÷¶ÈÆ÷À´¿ØÖÆÓû§µÄµ½ÆÚʱ¼ä£¨mysqlµÄʱ¼äµ÷¶ÈÆ÷ȷʵºÜ·½±ã£©¡£ÏëÆðÀ´ÊǺܼòµ¥£¬µ«ÊÇ×öÆðÀ´ÎÊÌâȷʵһ²¨½ÓÒ»²¨...
һЩСÎÊÌâ¾Í²» ......
USE AdventureWorks
GO
CREATE PROC spEmployee
AS
SELECT * from Humanresources.Employee
EXEC spEmployee
ALTER PROC spEmployee
AS SELECT EmployeeID from Humanresources.Employee
drop proc spEmployee
ALTER PROC spEmployee
@LastName nvarchar(50) = NULL
AS
IF @LastName IS NULL
SELECT * f ......