日期:2014-05-16  浏览次数:20591 次

各位大侠好,请问关键字 'as' 附近有语法错误如何解决?
网站使用asp+sqlserver2005

Microsoft OLE DB Provider for SQL Server 错误 '80040e14' 

关键字 'as' 附近有语法错误。 

/include/RsPage_Class.asp,行 341 

RsPage_Class.asp341附近代码:
Case 2 'Sql2005库
'求总记录数
sTotalCount = Conn.Execute("select count(*) from " & sTbName & " where " & sWhere)(0)

'求总页数
If (sTotalCount Mod sPageSize) = 0 Then
sTotalPage = sTotalCount / sPageSize
Else
sTotalPage = Int(sTotalCount / sPageSize) + 1
End If

If sCurPage > sTotalPage Then
sCurPage = sTotalPage
End If

'构造sql
sql = "width tempRecords as ( "
sql = sql & "select " & sColList
sql = sql & ",row_number() over ( order by "
For j = 0 To i '构造order by
sql = sql & sOrderbyArr(0,j) & " " & sOrderbyArr(1,j)
If j <> i Then
sql = sql & ","
End If 
Next
sql = sql & " ) as 'RowNumber'"
sql = sql & " from " & sTbName & " where " & sWhere & " ) "
sql = sql & "select " & sColList & " from tempRecords where RowNumber between " & ((sCurPage - 1) * sPageSize + 1) & " and " & (sCurPage * sPageSize)

'取数据
If sTotalCount = 0 Then
rsArr = ""
Else
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open sql,Conn,0,1
rsArr = rs.GetRows
rs.Close
Set rs = Nothing
End If 

End Select

------解决方案--------------------
在with的左边加一个分号试试:

sql = ";width tempRecords as ( "
sql = sql & "select " & sColList
sql = sql & ",row_number() over ( order by "