摘要: 有时会在存储过程中处理一些XML格式的数据,所以会用到sp_xml_preparedocument,他可以将XML数据进行读取,然后使用 MSXML 分析器 (Msxmlsql.dll) 对其进行分析。我们就可以很容易的在存储过程中得到XML中我们想要的数据。下面的代码就是使用sp_xml_preparedocument读取XML:代码如下: 1 DECLARE @hdoc int 2 DECLARE @doc varchar(1000) 3 SET @doc =' 4 <ROOT> 5 <Customer CustomerID="VINET" C 阅读全文
posted @ 2012-12-17 15:12 诺哥的传奇 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 返回执行的上一个 Transact-SQL 语句的错误号.Returns 0 if the previous Transact-SQL statement encountered no errors.A.用 @@ERROR 检测一个特定错误以下示例用@@ERROR在UPDATE语句中检测约束检查冲突(错误 #547)。USE AdventureWorks2012;GOUPDATE HumanResources.EmployeePayHistory SET PayFrequency = 4 WHERE BusinessEntityID = 1;IF @@ERROR = 547 ... 阅读全文
posted @ 2012-12-17 14:29 诺哥的传奇 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 1.ParallelPeriod--ParallelPeriodwith member [Measures].[a1] As 'ParAllelPeriod(Year,2,[时间].[月].&[2011]&[12])'select ParAllelPeriod([时间].[月].&[2011]&[10].level,1,[时间].[月].&[2011]&[10]) on columns,[Measures].[会员人数] on rowsfrom [BSUSYS_New]2.Topcountselect [Measures].[会员 阅读全文
posted @ 2012-05-28 09:52 诺哥的传奇 阅读(4266) 评论(2) 推荐(0) 编辑
摘要: ALTER TRIGGER [dbo].[Trigger_userStatusChangeLog] ON [dbo].[Jinbi_User] for UPDATEAS BEGIN-- SET NOCOUNT ON added to prevent extra result sets from-- interfering with SELECT statements.SET NOCOUNT ON;declare @NewUserStatus int;declare @OrgUserStatus int;declare @UserID int;declare @InWhiteList int; 阅读全文
posted @ 2012-02-23 17:55 诺哥的传奇 阅读(327) 评论(0) 推荐(0) 编辑
摘要: ALTER PROCEDURE [dbo].[Proc_Test_commit1] @result int output, --成功 1; 失败 0 @message nvarchar(20) output ASBEGIN SET NOCOUNT ON begin try begin tran yy insert into Test_Commit (b) values (3) insert into Test_Commit (a,b) values (1,3) set @result=1 commit tran yy ... 阅读全文
posted @ 2012-02-22 11:42 诺哥的传奇 阅读(14442) 评论(0) 推荐(2) 编辑
摘要: 今天的多维数据集又挂了,原因是在Fact_Trade_log表里面有的一条记录在dbo.Dim_User表里找不到相应的属性键!那就只能去业务库查查情况咯。抽取的逻辑是先找出各张表的最大时间戳,然后增量抽取<=最大时间戳的记录--将各表最大时间戳取出--调整顺序以避免出现有交易记录无会员的情况 select @TradeLog_max=cast(ISNULL(max(Timestamp),0) as bigint) from dbo.Trade_Log‘ select @User_max=cast(ISNULL(max(Timestamp),0) as bigint) ... 阅读全文
posted @ 2012-01-11 09:44 诺哥的传奇 阅读(242) 评论(0) 推荐(0) 编辑
摘要: declare @BusinessID int declare @MSMnum bigint DECLARE MSMnum_cursor CURSOR FOR select BusinessID,MSMnum from #temp1 OPEN MSMnum_cursor FETCH NEXT FROM MSMnum_cursor INTO @BusinessID,@MSMnum WHILE (@@FETCH_STATUS <> -1) BEGIN update A set A.BusinessID=@BusinessID ... 阅读全文
posted @ 2012-01-06 17:10 诺哥的传奇 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 在定制报表的过程中,常常要设定一些参数,像时间参数的设定(如createtime >= @begindate)比较好定,而要想设定参数让其可以自由筛选关键字段,需要注意以下事项(下面以设定@grade为例说明):1.如下图所示应该用Grade in (@grade)而不用Grade =@grade;2.如下图,在参数属性可用值里面,选指定值,如果选项不多可以一一罗列,如果选项较多,则应选择从查询中获取值;3.如下图,在默认值中,如要想默认全部,应该把所有选项全部添加进去。4.如下图,最后应该选择允许多个值,即可。 阅读全文
posted @ 2011-12-31 16:08 诺哥的传奇 阅读(4716) 评论(0) 推荐(0) 编辑
摘要: 主要是针对那些一张订单有几条记录的信息,先前寸的EMSGold都是总的,现在想把它更新为按其礼品金币值占比分配快递费用,具体脚本如下:select ID,MAX(SEQ_NO) as MA,COUNT(ID) as Tinto #temp001from dbo.Fact_Order_Giftwhere EMSPayGold >0group by ID having COUNT(ID)>=2 --找出有多条记录的信息--#temp002主要是为了后面算最大SEQ_NO的快递费用做铺垫select ID,SUM(round(EMSPayGold*((GiftGold*GiftNum)* 阅读全文
posted @ 2011-12-30 16:37 诺哥的传奇 阅读(303) 评论(0) 推荐(0) 编辑