ÔÚ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Óï¾äµÄÊä³öʵʱ
Ïà¹ØÎĵµ£º
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--ÿҳÏÔʾ¼Ç¼ÌõÊý
@currentpage int output,--µÚ¼¸Ò³
@orderid nvarchar(50),--Ö÷¼üÅÅÐò
@sort int,--ÅÅÐò·½Ê½£¬1±íʾÉýÐò£¬0±íʾ½µÐòÅÅÁÐ
......
½ñÌìÔÚÐÞ¸ÄÒÔǰ¿ª·¢µÄÒ»¸öÍøÕ¾µÄʱºòÓöµ½Ò»¸öÎÊÌ⣬ÒòΪ¹¦ÄܵÄÐèÒª£¬ÒÔǰµÄÒ»¸öÊý×ÖÀàÐÍ×ֶθıäΪÎı¾×ֶΣ¬ÒòΪÕâ¸ö×Ö¶ÎÐèÒª°üº¬¶à¸öÀà±ðµÄID£¬ÒÔǰÕâ¸ö×Ö¶ÎÖ»¶ÔÓ¦Ò»¸öIDµÄ¡£
ÍøÕ¾ÊÇASP VBÓïÑԵģ¬Êý¾Ý¿âʹÓõÄÊÇAccess
ÐÞ¸ÄÊý¾ÝÀàÐÍÖ®ºóǰ̨µÄ²éѯ´úÂë¾Í²»ÄÜʹÓÃÖîÈçxID=1ÕâÖÖÌõ¼þÁË¡£ÓÉÓÚÏÖÔÚ¸Ã×ֶαäΪÎı¾ÀàÐ ......
ÈçºÎÈÃÄãµÄSQLÔËÐеøü¿ì
---- ÈËÃÇÔÚʹÓÃSQLʱÍùÍù»áÏÝÈëÒ»¸öÎóÇø£¬¼´Ì«¹Ø×¢ÓÚËùµÃµÄ½á¹ûÊÇ·ñÕýÈ·£¬¶øºöÂÔ
Á˲»Í¬µÄʵÏÖ·½·¨Ö®¼ä¿ÉÄÜ´æÔÚµÄÐÔÄܲîÒ죬ÕâÖÖÐÔÄܲîÒìÔÚ´óÐ͵ĻòÊǸ´ÔÓµÄÊý¾Ý¿â
»·¾³ÖУ¨ÈçÁª»úÊ ......
MySQL·þÎñÆ÷°üº¬Ò»Ð©ÆäËûSQL DBMSÖв»¾ß±¸µÄÀ©Õ¹¡£×¢Ò⣬Èç¹ûʹÓÃÁËËüÃÇ£¬½«ÎÞ·¨°Ñ´úÂëÒÆÖ²µ½ÆäËûSQL·þÎñÆ÷¡£ÔÚijЩÇé¿öÏ£¬Äã¿ÉÒÔ±àд°üº¬MySQLÀ©Õ¹µÄ´úÂ룬µ«ÈÔ±£³ÖÆä¿ÉÒÆÖ²ÐÔ£¬·½·¨ÊÇÓÓ/*... */”×¢Ê͵ôÕâЩÀ©Õ¹¡£MySQL·þÎñÆ÷Äܹ»½âÎö²¢Ö´ÐÐ×¢ÊÍÖеĴúÂ룬¾ÍÏñ¶Ô´ýÆäËûMySQLÓï¾äÒ»Ñù£¬µ«ÆäËûSQL·þÎñÆ÷½«ºöÂÔ ......
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 ¹Ø¼ü×ÖÔÚÑ»·ÄÚ²¿¿ ......