SQL Server 2008ÖеıíÖµÐͲÎÊý
SQL Server 2008ÖеıíÖµÐͲÎÊý
×÷ÕߣºAl Tenhundfeld ÒëÕß Õź£Áú¡¡
±íÖµÐͲÎÊý£¨Table-valued parameters£©ÊÇSQL Server 2008ÖÐÒýÈëµÄÒ»ÖÖÐÂÌØÐÔ£¬ËüÌṩÁËÒ»ÖÖÄÚÖõķ½Ê½£¬Èÿͻ§¶ËÓ¦ÓÿÉÒÔֻͨ¹ýµ¥¶ÀµÄÒ»Ìõ²Î»¯ÊýSQLÓï¾ä£¬¾Í¿ÉÒÔÏòSQL Server·¢ËͶàÐÐÊý¾Ý¡£
±íÖµÐͲÎÊý£¨Table-valued parameters£©ÊÇSQL Server 2008ÖÐÒýÈëµÄÒ»ÖÖÐÂÌØÐÔ£¬ËüÌṩÁËÒ»ÖÖÄÚÖõķ½Ê½£¬Èÿͻ§¶ËÓ¦ÓÿÉÒÔֻͨ¹ýµ¥¶ÀµÄÒ»Ìõ²Î»¯ÊýSQLÓï¾ä£¬¾Í¿ÉÒÔÏòSQL Server·¢ËͶàÐÐÊý¾Ý¡£
ÕâÒ»¹¦ÄܵĻù´¡ÊÇSQL Server 2008ÖÐ×îеÄÓû§×Ô¶¨Òå±íÀàÐÍ£¨User-Defined Table Types£©£¬ËüÔÊÐíÓû§½«±íµÄ¶¨Òå×¢²áΪȫ¾ÖÖÜÖªÀàÐÍ¡£×¢²áÖ®ºó£¬ÕâЩ±íÀàÐÍ¿ÉÒÔÏñ±¾µØ±äÁ¿Ò»ÑùÓÃÓÚÅú´¦ÀíÖС¢ÒÔ¼°´æ´¢¹ý³ÌµÄº¯ÊýÌåÖУ¬ºÜÏñÔçÆÚSQL Server°æ±¾ÖÐͨÓñí±äÁ¿µÄÇ¿ÀàÐÍ»¯°æ±¾¡£µ«ÊÇ£¬ÓëͨÓñí±äÁ¿ÓÐËù²»Í¬µÄÊÇ£¬Óû§×Ô¶¨Òå±íÀàÐ͵ıäÁ¿¿ÉÒÔ×÷Ϊ²ÎÊýÔÚ´æ´¢¹ý³ÌºÍ²ÎÊý»¯TSQLÖÐʹÓá£
Óû§×Ô¶¨Òå±íÀàÐ͵ÄʹÓÃÓÐÐí¶àÏÞÖÆ£º
Ò»¸öÓû§×Ô¶¨Òå±íÀàÐͲ»ÔÊÐíÓÃÀ´¶¨Òå±íµÄÁÐÀàÐÍ£¬Ò²²»ÄÜÓÃÀ´¶¨ÒåÒ»¸öÓû§×Ô¶¨Òå½á¹¹ÀàÐ͵Ä×ֶΡ£
²»ÔÊÐíÔÚÒ»¸öÓû§×Ô¶¨Òå±íÀàÐÍÉÏ´´½¨Ò»¸ö·Ç¾ÛºÏË÷Òý£¬³ý·ÇÕâ¸öË÷ÒýÊÇ»ùÓÚ´ËÓû§×Ô¶¨Òå±íÀàÐÍ´´½¨µÄÖ÷¼ü»òÎ¨Ò»Ô¼Êø¡£
ÔÚÓû§×Ô¶¨Òå±íÀàÐ͵͍ÒåÖУ¬²»ÄÜÖ¸¶¨È±Ê¡Öµ¡£
Ò»µ©´´½¨ºó£¬¾Í²»ÔÊÐíÔÙ¶ÔÓû§×Ô¶¨Òå±íÀàÐ͵͍Òå½øÐÐÐ޸ġ£
Óû§×Ô¶¨Ò庯Êý²»ÄÜÒÔÓû§¶¨Òå±íÀàÐÍÖеļÆËãÁж¨ÒåΪ²ÎÊýÀ´µ÷Óá£
Ò»¸öÓû§×Ô¶¨Òå±íÀàÐͲ»ÔÊÐí×÷Ϊ±íÖµÐͲÎÊýÀ´µ÷ÓÃÓû§×Ô¶¨Ò庯Êý¡£
µ±Óû§×Ô¶¨Òå±íÀàÐÍ×÷Ϊ±íÖµÐͲÎÊýʱ£¬»¹Óиü¶àÏÞÖÆ£¬ÀýÈ磬ÔÚ²ÎÊý»¯Óï¾ä»ò´æ´¢¹ý³ÌÖУ¬ËüÃÇÊÇÖ»¶ÁµÄ£º
²»ÔÊÐí¸üжàÐбíÖµÐͲÎÊýÖеÄÁÐÖµ£¬Ò²²»ÔÊÐí²åÈë»òɾ³ýÐС£Èç¹ûÏëÒªÐÞ¸ÄÄÇЩÒѾ´«Èëµ½´æ´¢¹ý³Ì»ò²ÎÊý»¯Óï¾äÖеıíÖµÐͲÎÊýÖеÄÊý¾Ý£¬Ö»ÄÜͨ¹ýÏòÁÙʱ±í»ò±í±äÁ¿ÖвåÈëÊý¾ÝÀ´ÊµÏÖ¡£
ÔÚADO.NETÖУ¬¿ÉÒÔÀûÓñê×¼µÄSqlParameterÀàÐÍÀ´Ê¹ÓÃÓû§×Ô¶¨Òå±íÀàÐÍ£º
TypeName²ÎÊý±ØÐëÉèÖÃΪÓû§×Ô¶¨Òå±íÀàÐ͵ÄÃû³Æ£¬ÀýÈ磺dbo.PersonInfo
SqlDbType±ØÐëÉèÖÃΪSqldbType.Structured
Value²ÎÊýµÄÀàÐÍÊý¾Ý±ØÐëÓ
Ïà¹ØÎĵµ£º
×òÌìÎÒ˵£¬ÓÃ×éºÏË÷ÒýÓÅ»¯SQL£¬²¢²»ÊÇ×îÓŵģ¬ÕâÊÇÒòΪÔÚ8ÒڵıíÉÏÃæÓиöµÈ¼ÛµÄÎﻯÊÓͼ£¬Õâ¸öÎﻯÊÓͼ¿ÉÒÔ´úÌæÎÒÔÚ֮ǰÔÚ±íÉÏÃæ½¨Á¢µÄ×éºÏË÷Òý¡£
SQL> explain plan for SELECT distinct * from (select
2 (PROD_9005_GDF_WK_SS_FDIM.PROD_4_NAME),
3 PROD_9005_GDF_WK ......
SQL Server DATEDIFF() º¯Êý
¶¨ÒåºÍÓ÷¨
DATEDIFF() º¯Êý·µ»ØÁ½¸öÈÕÆÚÖ®¼äµÄÌìÊý¡£
Óï·¨
DATEDIFF(datepart,startdate,enddate)
startdate ºÍ enddate ²ÎÊýÊǺϷ¨µÄÈÕÆÚ±í´ïʽ¡£
datepart ²ÎÊý¿ÉÒÔÊÇÏÂÁеÄÖµ£º
datepartËõд
Äê
yy, yyyy
¼¾¶È
qq, q
ÔÂ
mm, m
ÄêÖеÄÈÕ
dy, y
ÈÕ
dd, d
ÖÜ
wk, ww
ÐÇÆÚ
......
sqlÈÕÆÚº¯Êý(ת)
[ 2007-8-23 16:33:00 | By: ²½ ]1.Ò»¸öÔµÚÒ»ÌìµÄ
Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
2.±¾ÖܵÄÐÇÆÚÒ»
Select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
3.Ò»ÄêµÄµÚÒ»Ìì
Select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
4.¼¾¶ÈµÄµÚÒ»Ìì
Select DATEADD(qq, DATEDIFF(qq,0,getdat ......
СµÜÏëÎʸöÎÊÌ⣬ÔÚSQL Server 2005ÉÏ£¬½¨Á¢Ö÷¼üµÄͬʱ¾Í»áĬÈÏÔÚÖ÷¼üÉÏÉèÖþ۴ØË÷Òý£¬ÄÇôÄÜ·ñÔÚÒ»¸ö×Ö¶ÎÉÏÉèÖÃÖ÷¼üºÍΨһÐÔË÷Òý£¨Unique£©£¬µ«ÊǰѾ۴ØË÷ÒýÉèÖõ½ÁíÒ»¸ö×Ö¶ÎÉÏ£¿
¾Ù¸ö¼òµ¥µÄÀý×Ó£¬±ÈÈçÎÒÓиö±í½ÐTableTest£¬±íÀïÓÐÁ½¸ö×ֶΣ¬id,date£¬±¾À´idÊÇÖ÷¼üµÄ£¬ÎÒÏÖÔÚÏë°Ñ¾Û´ØË÷ÒýÉèÖõ½date×Ö¶ÎÉÏ¡£
ÎÒÏÈɾ³ýÖ ......
SQL Server ·ÖÒ³
½¨Á¢±í£º
CREATE TABLE [TestTable] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[LastName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[Country] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Note] [nvarchar ......