摘要:
一、BEGINTRANSACTIONA--SAVETRANSACTIONAINSERTINTOHoliday(HolidayDate,[Year])VALUES(GETDATE(),2022)INSERTINTOHoliday(HolidayDate,[Year])VALUES(NULL,2022)IF@@ERROR=0--如果前一个Transact-SQL语句执行没有错误,则返回0。COMMITTRANSACTIONAELSEROLLBACKTRANSACTIONA二、BEGINTRYBEGINTRANSACTIONAINSERTINTOHoliday(HolidayDate,[Year]) 阅读全文
摘要:
一、循环结果集SELECT*FROMPerson.vAdditionalContactInfo--游标(这里也可选择多个字段)DECLAREc1CURSORFORSELECTh.FirstName,h.LastNameFROMPerson.vAdditionalContactInfoh;DECLARE@fnVARCHAR(20),@lnVARCHAR(20)Openc1Fetchc1into@fn,@lnWHILE@@fetch_status=0--获取游标成功BEGINPRINT@fnPRINT@lnFetchc1into@fn,@lnENDCLOSEc1DEALLOCATEc1 阅读全文
摘要:
存储过程有三种返回:1.用return返回数字型数据2.用返回参数返回结果,可以返回各种数据类型(通过游标来循环查询结果每一行)3.直接在存储过程中用select返回结果集,可以是任意的select语句,这意味着是任意的返回结果集方法一:用return返回数字型数据1.创建存储过程--SQLSERVER2005示例数据库USEAdventureWorksGOCREATEPROCEDUREcheckstate@paramVARCHAR(11)ASIF(SELECTStateProvinceFROMPerson.vAdditionalContactInfoWHEREContactID=@param 阅读全文
摘要:
--SQLSERVER2000取第几行到第几行的方法--(第一种方法)效率最差selecttop5*fromcustomerswhereCustomerIDnotin(selecttop5CustomerIDfromcustomers)--(第二种方法)效率最好, 这里先执行的是Order by 然后才执行Topselectb.*from(selecttop5a.*from(selecttop10*fromcustomersorderbyCustomerIDasc)aorderbya.CustomerIDdesc)borderbyb.CustomerID--(第三种方法)利用临时表和ident 阅读全文