SQLÊÂÎñ´¦ÀíÓï¾ä×ܽá
´æ´¢¹ý³ÌÖг£Óõ½µÄSQLÊÂÎñ´¦ÀíÓï¾ä¸ñʽ¿ÉÄÜ»áÓÐÈçϼ¸ÖÖ:
µÚÒ»ÖÖ:
set xact_abort on
begin tran
insert ...
update ...
delete ...
commit tran
µÚ¶þÖÖ:
set xact_abort on
begin tran
insert ...
if @@error<>0 rollback tran
update ...
if @@error<>0 rollback tran
delete ...
if @@error<>0 rollback tran
commit tran
µÚÈýÖÖ:
set xact_abort on
begin tran
insert ...
update ...
delete ...
if @@error<>0
rollback tran
else
commit tran
µÚËÄÖÖ:
set xact_abort on
begin tran
declare @ErrorSave int
insert ...
if @@error<>0 set @ErrorSave=1
update ...
if @@error<>0 set @ErrorSave=1
delete ...
if @@error<>0 set @ErrorSave=1
if @ErrorSave>0
rollback tran
else
commit tran
ʹÓÃÊÂÎñµÄȱÏÝ:ʹÓöàÁËÊÂÎñ´¦Àí,¾³£»á²úÉúËÀËøÏÖÏó,ÌØ±ð
Ïà¹ØÎĵµ£º
Ò». ²éÕÒÖØ¸´¼Ç¼
1. ²éÕÒÈ«²¿Öظ´¼Ç¼
Select * from ±í Where ÖØ¸´×Ö¶Î In (Select ÖØ¸´×Ö¶Î
from ±í Group By ÖØ¸´×Ö¶Î Having Count(*)>1)
2. ¹ýÂËÖØ¸´¼Ç¼(Ö»ÏÔʾһÌõ)
Select * from HZT Where ID In (Select Max(ID) from HZT Group By Title)
×¢£º´Ë´¦ÏÔʾID×î´óÒ»Ìõ¼Ç¼
¶þ. ɾ³ýÖØ¸´¼Ç ......
ÊÓͼ¿ÉÒÔ±»¿´³ÉÊÇÐéÄâ±í»ò´æ´¢²éѯ¡£¿Éͨ¹ýÊÓͼ·ÃÎʵÄÊý¾Ý²»×÷Ϊ¶ÀÌØµÄ¶ÔÏó´æ´¢ÔÚÊý¾Ý¿âÄÚ¡£Êý¾Ý¿âÄÚ´æ´¢µÄÊÇ SELECT Óï¾ä¡£SELECT Óï¾äµÄ½á¹û¼¯¹¹³ÉÊÓͼËù·µ»ØµÄÐéÄâ±í¡£Óû§¿ÉÒÔÓÃÒýÓñíʱËùʹÓõķ½·¨£¬ÔÚ Transact-SQL Óï¾äÖÐͨ¹ýÒýÓÃÊÓͼÃû³ÆÀ´Ê¹ÓÃÐéÄâ±í¡£Ê¹ÓÃÊÓͼ¿ÉÒÔʵÏÖÏÂÁÐÈÎÒ»»òËùÓй¦ÄÜ£º
½«Óû§ÏÞ¶¨ÔÚ± ......
CREATE FUNCTION dbo.UF_GetInvoiceSerials( @bizCode VARCHAR(10))
RETURNS VARCHAR(100)
AS
BEGIN
DECLARE @ret AS VARCHAR(1000)
SELECT @ret=Coalesce(@ret + ', ','') +
CASE e.ID
  ......
select d.code,d.name, sum(w.weight) weight,round(avg(w.price),2) price,sum(w.money) money
from weight_info w left outer join t_dict d on w.productcode=d.code left outer join t_balancecode b on w.balancecode=b.balancecode where 1=1 and w.operdate>TO_TIMESTAMP('2009-11-2 04:12:32.0', ' ......
Student(S#,Sname,Sage,Ssex) ѧÉú±í
Course(C#,Cname,T#) ¿Î³Ì±í
SC(S#,C#,score) ³É¼¨±í
Teacher(T#,Tname) ½Ìʦ±í
ÎÊÌ⣺
1¡¢²éѯ“001”¿Î³Ì±È“002”¿Î³Ì³É¼¨¸ßµÄËùÓÐѧÉúµÄѧºÅ£»
select a.S# from (select s#,score from SC where C#='001') a,(select s#,score
fr ......