Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

ÔÚSQL ServerÓ¦ÓÃÖÐʹÓÃOUTPUT×Ó¾ä

 ÏÖÔÚ´ó¶àÊýÃèÊöSQL Server 2005ÐÂÌØÐÔµÄÎÄÕ¶¼¹Ø×¢ÓÚ»ª¶ø²»ÊµµÄÌØÐÔ£¬ÈçSQLCLR»òXMLÊý¾ÝÀàÐÍ£¬¶ø¶ÔÐí¶àºÜºÃµÄÀϵÄT-SQLÓïÑԵĸĽøÃ»Óеõ½Ó¦ÓеĹØ×¢¡£ÎÒÔø¾­´ÓÐí¶àDBA¿ÚÖÐÌýµ½ÁîËûÃǸüÐ˷ܵÄÊÇ¿´µ½T-SQLÓïÑԵĸĽø,¶ø²»ÊÇÄÇЩгöÏֺͷ¢²¼µÄ¹¦ÄÜ¡£¶ÔÓÚSQLÓïÑÔµÄÒ»¸öºÜÓÐÓõÄʵ¼Ê¸Ä½øÊÇOUTPUT×Ӿ䣬ËüÔÊÐí²éѯһ¸öÊý¾ÝÐÞ¸ÄÃüÁîËùÓ°ÏìµÄ¼Ç¼ÐС£
¡¡¡¡±¾ÎĽ«ÌÖÂÛOUTPUT×Ó¾äÔÚSQL ServerÖеľßÌåÓ¦Óá£ÎÒ»áÏòÄã½éÉÜÈçºÎºÜÈÝÒ×µØÊ¹ÓÃOUTPUT×Ó¾äʵÏÖÉó¼ÆºÍÊý¾ÝÐ޸Ĵ浵µÈÒµÎñÐèÇó£¬ÒÔ¼°ÆäËüÏà¹ØµÄÄÚÈÝ¡£
¡¡¡¡OUTPUT×Ó¾äµÄ»ù±¾Ô­ÀíÊǺܼòµ¥µÄ——Ëü·µ»ØÓÉÿ¸öINSERT¡¢UPDATE»òDELETEÃüÁîËùÓ°ÏìµÄ¼Ç¼ÐС£OUTPUT¿ÉÒÔÔÚ¿Í»§¶ËÓ¦ÓóÌÐòÖзµ»ØÕâЩ¼Ç¼ÐУ¬È»ºó½«ËüÃDzåÈëµ½Ò»¸ö³Ö¾ÃµÄ»òÁÙʱµÄ±íÖУ¬Ò²¿ÉÒÔ½«¼Ç¼²åÈëµ½Ò»¸ö±í±äÁ¿ÖС£ËüµÄÓ÷¨¾ÍÊÇÖ±½Ó½«OUTPUT×Ӿ丽µ½ÈκÎÒ»¸öINSERT/UPDATE/DELETEÓï¾äºó¡£
¡¡¡¡OUTPUT×Ó¾äÖпÉÒÔÒýÓÃINSERTED»òDELETEDÐéÄâ±í£¬ÕâÈ¡¾öÓÚÊÇ·ñÏëÒªÔÚÊý¾ÝÐÞ¸Äǰ(DELETED±í)»òÐ޸ĺó(INSERTED±í)µÃµ½Êý¾Ý¡£Õâ¸úʹÓô¥·¢Æ÷È¥ÐÞ¸ÄÊý¾ÝµÄ²Ù×÷ÊǺÜÏàËÆµÄ¡£
¡¡¡¡×¢Ò⣺²»ÄÜÔÚÒ»¸öINSERTÓï¾äÖÐÒýÓÃDELETED£¬Ò²²»ÄÜÔÚÒ»¸öDELETEDÓï¾äÖÐÒýÓÃINSERTED£¬ÒòΪÕâЩÐéÄâ±íÔÚÕâÁ½ÖÖÇé¿öÏÂÂß¼­ÉÏÊÇûÓÐÒâÒåµÄ£¬ËùÒÔSQL Server²»»áÈ¥´´½¨¡£
¡¡¡¡¼ÈÈ»ÎÒÃÇÒѾ­Á˽âÁËOUTPUT×Ó¾äÔÚSQL ServerÖеĻù±¾Ó÷¨£¬ÏÂÃæÈÃÎÒÃÇ¿´Ò»Ð©ËüµÄÀý×ÓºÍSQL ServerÖеÄʵ¼ÊÓ¦Óá£ÎÒ½«´Ó´´½¨Ò»¸ö¼òµ¥µÄEmployee±í¿ªÊ¼£º
¡¡¡¡CREATE TABLE dbo.Employee
¡¡¡¡(
¡¡¡¡EmployeeID INT NOT NULL IDENTITY(1, 1),
¡¡¡¡FirstName VARCHAR(50) NOT NULL,
¡¡¡¡LastName VARCHAR(50) NOT NULL,
¡¡¡¡Status VARCHAR(20) DEFAULT 'Single'
¡¡¡¡)
¡¡¡¡ÏÂÒ»²½£¬ÎÒÃÇÒª²åÈëÒ»ÐÐÊý¾Ý²¢¼ÓÉÏOUTPUTÀ´·µ»ØÖ´ÐвåÈë²Ù×÷ʱËù²åÈëµ½Ó¦ÓÃÖеļǼ£º
  ¡¡INSERT INTO dbo.Employee( FirstName, LastName )
¡¡¡¡OUTPUT INSERTED.*
¡¡¡¡SELECT 'Susan', 'Kelley'
EmployeeID
FirstName
LastName
Status
1
Susan
Kelley
Single
¡¡¡¡ÎÒÃÇ¿ÉÒÔ¿´µ½£¬SQL Server·µ»ØINSERTÓï¾äËù²åÈëµÄ¼Ç¼¡£Õâ¸ö¼¼Êõ¶ÔÓÚ²éÕÒ·þÎñÆ÷Éú³ÉµÄÖµ²¢·µ»Ø¸øÓ¦ÓóÌÐòÊǺÜÓÐÓõģ¬Èç±ê¼Ç×ֶλò×Ö¶ÎĬÈÏÖµ¡£
ÏÂÒ»²½£¬ÎÒÃǽ«À´×ÔINSERTÓï¾äµÄÊä³öʵʱ


Ïà¹ØÎĵµ£º

ÈçºÎ´Ó PL/SQL ´æ´¢º¯Êý·µ»ØÊý×é

ÈÕÆÚ£º2003 Äê 2 Ô 19 ÈÕ
Íê³É´Ë·½·¨Ö¸ÄϺó£¬ÄúÓ¦¸ÃÄܹ»£º
ÔÚ Oracle Êý¾Ý¿âÖд´½¨ VARRAY
ʹÓà oracle.sql.ARRAY Àà
´Ó Java ·ÃÎÊ VARRAY
¼ò½é
±¾ÎĵµÑÝʾÈçºÎ´Ó PL/SQL º¯Êý·µ»ØÊý×é²¢´Ó java Ó¦ÓóÌÐò·ÃÎÊËü¡£Êý×éÊÇÒ»×éÓÐÐòµÄÊý¾ÝÔªËØ¡£ VARRAY ÊÇ´óС¿É±äµÄÊý×é¡£Ëü¾ßÓÐÊý¾ÝÔªËØµÄÅÅÁм¯£¬²¢ÇÒËùÓÐÔªËØÊôÓÚ ......

¶¯Ì¬sqlÓï¾ä»ù±¾Óï·¨

1 :ÆÕͨSQLÓï¾ä¿ÉÒÔÓÃExecÖ´ÐÐ
      Àý:      Select * from tableName
                Exec('select * from tableName')
        & ......

±ê×¼³£ÓÃsqlÓï¾ä Ò»

 SQL ÊÇÒ»ÃÅ ANSI µÄ±ê×¼¼ÆËã»úÓïÑÔ£¬ÓÃÀ´·ÃÎʺͲÙ×÷Êý¾Ý¿âϵͳ¡£SQL Óï¾äÓÃÓÚÈ¡»ØºÍ¸üÐÂÊý¾Ý¿âÖеÄÊý¾Ý¡£SQL ¿ÉÓëÊý¾Ý¿â³ÌÐòЭͬ¹¤×÷£¬±ÈÈç MS Access¡¢DB2¡¢Informix¡¢MS SQL Server¡¢Oracle¡¢Sybase ÒÔ¼°ÆäËûÊý¾Ý¿âϵͳ¡£
²»ÐÒµØÊÇ£¬´æÔÚןܶ಻ͬ°æ±¾µÄ SQL ÓïÑÔ£¬µ«ÊÇΪÁËÓë ANSI ±ê×¼Ïà¼æÈÝ£¬ËüÃDZØÐëÒÔÏàËÆµÄ ......

SQL Server ÖÐ int¡¢bigint¡¢smallint ºÍtinyint

ʹÓÃÕûÊýÊý¾ÝµÄ¾«È·Êý×ÖÊý¾ÝÀàÐÍ¡£
 bigint ´Ó -2^63 (-9223372036854775808) µ½ 2^63-1 (9223372036854775807) µÄÕûÐÍÊý¾Ý£¨ËùÓÐÊý×Ö£©¡£
              ´æ´¢´óСΪ 8 ¸ö×Ö½Ú¡£
 int ´Ó -2^31 (-2,147,483,648) µ½ 2^31 - 1 (2,147,483,64 ......

SQL Ñ­»·Óï¾ä while ½éÉÜ ÊµÀý ¼ò½é

 declare @i int
set @i=1
while @i<30
begin
insert into test (userid) values(@i)
set @i=@i+1
end
---------------
while Ìõ¼þ
begin
Ö´ÐвÙ×÷
set @i=@i+1
end
WHILE
ÉèÖÃÖØ¸´Ö´ÐÐ SQL Óï¾ä»òÓï¾ä¿éµÄÌõ¼þ¡£Ö»ÒªÖ¸¶¨µÄÌõ¼þÎªÕæ£¬¾ÍÖØ¸´Ö´ÐÐÓï¾ä¡£¿ÉÒÔʹÓà BREAK ºÍ CONTINUE ¹Ø¼ü×ÖÔÚÑ­»·ÄÚ²¿¿ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ