小编vk_*_*use的帖子

SQL ROW_NUMBER和排序问题

在SQL 2005/2008数据库中,我们有表BatchMaster.列:RecordId bigint - autoincremental id,BatchNumber bigint - 唯一的非聚集索引,BatchDate).我们有sproc返回此表中的分页数据.该sproc适用于大多数客户端,但在一个SQL服务器实例中,我们遇到记录顺序问题.一般来说,我们这样做

select * from
(
    select row_number() over (order by bm.BatchDate desc, bm.BatchNumber desc) as Row,
    *
    from dbo.BatchMaster bm with (nolock)
)
where Row between @StartingRow and @EndgingRow
Run Code Online (Sandbox Code Playgroud)

因此,正如您可以从上面的脚本中注意到的那样,我们希望返回按BatchDate和BatchNumber排序的记录.对于我们的一位客户来说,这不会发生: 在此输入图像描述

记录顺序错误.另外,请注意第一列(行),它不是按升序排列的.

有人能解释为什么这样吗?

sql sql-server sorting row-number sql-order-by

5
推荐指数
2
解决办法
7847
查看次数

T-SQL尝试...捕获和多个批次(2个开始......结束,如果......其他)

我正在尝试理解如何尝试...捕获构造在T-SQL中工作.

所以我在MSDN上阅读了文章:http://msdn.microsoft.com/en-us/library/ms175976.aspx

我对这个陈述有点困惑: 一个TRY ... CATCH构造不能跨越多个批次.TRY ... CATCH构造不能跨越多个Transact-SQL语句块.例如,TRY ... CATCH构造不能跨越Transact-SQL语句的两个BEGIN ... END块,并且不能跨越IF ... ELSE构造.

它说try ... catch不能跨越2个BEGIN ... END块,不能跨越IF ... ELSE构造.

但是,我已经尝试过了,它的确有效!(2005年和2008年)

有人可以解释原因吗?在MSDN上看起来有些错误.

看看我的测试脚本:

print 'start'
begin transaction test_tran
begin try
    -- first begin ... end
    begin
        -- some statements
        print 'begin ... end - #1'
    end
    -- second begin ... end
    begin
        print 'begin ... end - #2'
        -- statement with error
        select 1/0 -- division by zero
    end
    print 'end of try'
end …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server if-statement try-catch

4
推荐指数
1
解决办法
9315
查看次数

IIS代字号漏洞问题

以下是我们在其中一个网站上的问题:

使用Windows文件系统速记字符和状态返回代码强制执行文件/目录名称

It is possible to find an unknown filename up to six characters by using shorthand file characters such as ~1 and
    *Example: site.com/admin/uplo*~1*/.aspx
This attack relies on reading different error codes the webserver responds with when the file(s) exist or not. Let’s say the file upload.aspx exists in the directory admin. Our attacks responses would look like this:
    site.com/admin/uplo*~1*/.aspx – IIS returns HTTP 404 File Not Found (valid file)
    site.com/admin/uplp*~1*/.aspx – IIS returns HTTP 400 Bad Request (invalid …
Run Code Online (Sandbox Code Playgroud)

asp.net security iis url-rewriting

3
推荐指数
1
解决办法
2万
查看次数