在查詢分析器中執行建立存儲過程:
CREATE procedure recordCount
(
@strWhere nvarchar(500)='',
@count int output
)
as
declare @sqlStr nvarchar(1000)
if @strWhere != ''
set @sqlStr = N'select @COUNT = count(id) from get_zhaoshang where 1=1 ' + @strWhere
else
set @sqlStr = N'select @COUNT = count(id) from get_zhaoshang'
exec sp_executesql @sqlStr,N'@count int output',@count output
GO
ASP程序中調用:
Set MyComm = Server.CreateObject("ADODB.Command")
MyComm.ActiveConnection = objconn
'MyConStr是數據庫連接字串
MyComm.CommandText = "recordCount"
'指定存儲過程名
MyComm.CommandType = 4
'表明這是一個存儲過程
MyComm.Prepared = true
'要求將SQL命令先行編譯
@strWhere:數據庫查詢where條件
MyComm.Parameters.append MyComm.CreateParameter("@strWhere",200,1,500,SearchChar1)'輸入參數
MyComm.Parameters.append MyComm.CreateParameter("@count",3,2)'輸出參數
MyComm.Execute
'取得出參
TotalRs= MyComm.Parameters("@count").value
response.write TotalRs
Set MyComm = Nothing
如果對存儲過程還有不清楚的地方可以查詢以下網址:
2.
用 sp_executesql 解決字段名、表名不能用變量的問題
執行存儲過程時到底要不要加 exec
T-SQL 字符串前加 N 是什麼意思