SQL2005存储过程出错,请教高人

来源:百度知道 编辑:UC知道 时间:2024/07/05 01:37:12
CREATE PROC Admin_Log
@sql1str varchar(150)
AS
BEGIN
SELECT Top 90 ID,UID,Name,Text,TTime FROM User_Log (@sql1str) ORDER BY TTime DESC
END

以上是代码,查询执行提示:

消息 215,级别 16,状态 1,过程 Admin_Log,第 5 行
为不是函数的对象 'User_Log' 提供了参数。如果这些参数要作为表提示,则需要使用 WITH 关键字。

请教如何解决
mailking2001 ,按照你的方式在MSSQL里执行是正确的,但是ASP页面上虽然会显示查询的记录,但无法得到记录集?也无法翻页这些了!

现在的代码是这样:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROC [dbo].[Admin_Log]
@sqlstr NVARCHAR(550)=Null
AS
DECLARE @Str NVARCHAR(550)
BEGIN
select @Str=@sqlstr
execute ('SELECT Top 90 ID,UID,Name,Text,TTime FROM User_Log '+ @Str +' ORDER BY TTime DESC' )
END

ASP的代码是这样:
set Rs = Server.CreateObject("ADODB.RECORDSET")
Sql = "exec Admin_Log '"&sqlstr&"'"
Rs.open Sql, Conn,1,1
Rs.PageSize = PageSize
pgnum=Rs.Pagecount
if page=&

CREATE PROC Admin_Log
@sql1str varchar(150)
AS
BEGIN
declare @user_log varchar(150)
select @user_log=User_Log (@sql1str)
execute ('SELECT Top 90 ID,UID,Name,Text,TTime FROM ' + @user_log + 'ORDER BY TTime DESC' )
END

这样应该可以执行了!

还有User_Log()是什么函数???你自定义的吗??

MSSQL中函数不能这样返回值的
select User_Log (@sql1str) 这样才能返回函数的值