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
Ïà¹ØÎĵµ£º
ÕâÀï½éÉÜsql server2005ÀïÃæµÄÒ»¸öʹÓÃʵÀý£º
CREATE TABLE tb(province nvarchar(10),city nvarchar(10),score int)
INSERT tb SELECT 'ÉÂÎ÷','Î÷°²',3
UNION ALL SELECT 'ÉÂÎ÷','°²¿µ',4
UNION ALL SELECT 'ÉÂÎ÷','ººÖÐ',2
UNION ALL SELECT '¹ã¶«','¹ãÖÝ',5
UNION ALL SELECT '¹ã¶«','Ö麣',2
UNION ......
1. SQLÓÅ»¯µÄÔÔòÊÇ£º
½«Ò»´Î²Ù×÷ÐèÒª¶ÁÈ¡µÄBLOCKÊý¼õµ½×îµÍ,¼´ÔÚ×î¶ÌµÄʱ¼ä´ïµ½×î´óµÄÊý¾ÝÍÌÍÂÁ¿¡£
µ÷Õû²»Á¼SQLͨ³£¿ÉÒÔ´ÓÒÔϼ¸µãÇÐÈ룺
¼ì²é²»Á¼µÄSQL£¬¿¼ÂÇÆäд·¨ÊÇ·ñ»¹ÓпÉÓÅ»¯ÄÚÈÝ
¼ì²é×Ó²éѯ ¿¼ÂÇSQL×Ó²éѯÊÇ·ñ¿ÉÒÔÓüòµ¥Á¬½Óµ ......
select gztzid,
gztztt,
gztzbt,
gztznr,
fslxmc,
decode(fsfs, '0', 'ÎÞÐè»Ø¸´', '1', 'ÐèÒª»Ø¸´') fsfs,
&nb ......
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 ......