當前位置:首頁 » 編程語言 » sql存儲過程輸出count
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql存儲過程輸出count

發布時間: 2023-03-24 00:55:53

A. sql 存儲過程,返回數據集 並返回總行數

1、打開SQLServerManagementStudio找到存儲過程所在的資料庫。在對象資源管理器詳細信息中可以看到存儲過程的文件夾。

B. sql存儲過程 輸出參數

SQL存儲過程輸出參數:

--===================【創建存儲過程】=====================

USE[Message]
GO
/******Object:StoredProcere[dbo].[讀取外部資料庫查詢]ScriptDate:10/24/201205:39:16******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
--=============================================\Working沒有變1,錯誤碼沒有測試,計劃時間測試,企業名稱

createPROCEDURE[dbo].[資料庫查詢]
@SmsContentvarchar(20)='1231',--輸入參數
@bj1intout--輸入出參數

AS
BEGIN

SELECT@bj1=count(Id)fromsss

END


--===============【調用】==================

USE[Message]

DECLARE@return_valueint

EXEC[dbo].[資料庫查詢]'1231',@return_valueoutput

SELECT@return_value

C. SQL 創建存儲過程 輸出對比參數

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO

create PROCEDURE [dbo].[proc_return]
@貨物編號 nvarchar(50),--不清楚你的這個貨物編號是要傳進來還是要 在存儲過程獲取
@ReturnCount Int OutPut
AS
Begin
Begin TransacTion trans
Set @ReturnCount = 3 --這里先默認為3或者其他 ,如果要檢測其他錯誤的話 會要用到 食物

--執行取得 貨物編號 語句或者 存儲過程

if(@貨物編號='') --這老如里可以看成判斷沒有給出閉卜 貨物編號
begin
select @ReturnCount=1
end

If Exists(Select * From 貨物表 Where 貨物編號 = @貨物編號)--判斷是否存在
Begin
select @ReturnCount=0
End
Else
Begin
select @ReturnCount=2
End

if @@error<>0 --判斷如果以侍態啟上執行有任何一條出現錯誤
begin
rollback tran --開始執行事務的回滾,恢復的轉賬開始之前狀態
select @ReturnCount=3
end
else
begin
commit tran
end

End

呵呵 希望對你有所幫助。

D. sql創建存儲過程失敗,count欄位不正確或語法錯誤

sql創建存儲過程失敗,count欄位不正確或語法錯誤,該欄位加雙引號。資料庫創建表與存儲過程中的sql語句欄位不符合錯誤(耗時最長,最無語),這里括弧中的欄位需要加號,如果建表的時候把列名加上雙引號,查詢的時候列名不加雙引號就會報錯。

E. 我的sql存儲過程是執行分頁查詢的 返回當前頁的數據datatable 和output輸出參數總條數pagecount能一條sql

給你個我在用的分頁存儲過程
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER proc [dbo].[global.pagebreak]
@pFields varchar(4000)='*',--查詢的欄位
@pSortField varchar(2000)='',--排序的欄位
@pTable varchar(3000)='',--所查的表
@pWhere varchar(4000)='',--條件
@pOnePageRows int = 25,--每頁顯示的條數
@pIndex int = 1
as
declare @s varchar(5000)
if (@pWhere='' or @pWhere=NULL)
begin
set @s ='
DECLARE @totalRows int
DECLARE @totalPages int
SELECT @totalRows = COUNT(*) From '+@pTable+'
SET @totalPages = @totalRows / '+cast(@pOnePageRows as varchar)+'
IF( @totalPages * '+cast(@pOnePageRows as varchar) + '< @totalRows)
SELECT @totalPages = @totalPages + 1
SELECT '+@pFields+' FROM(
SELECT ROW_NUMBER() OVER(order by '+@pSortField+') as ROWID, '+@pFields+' From '+@pTable+')
AS TSP
WHERE ROWID BETWEEN '+cast((((@pIndex-1)*@pOnePageRows)+1) as varchar)+'
AND '+cast((@pIndex*@pOnePageRows) as varchar)+'
SELECT @totalRows AS TOTALROWS,
@totalPages AS TOTALPAGES,
'+cast(@pIndex as varchar)+' AS CURRENTPAGE,
'+cast(@pOnePageRows as varchar)+' AS ONEPAGEROWS '
end
else
begin
set @s ='
DECLARE @totalRows int
DECLARE @totalPages int
SELECT @totalRows = COUNT(*) From '+@pTable+' where '+@pWhere+'
SELECT @totalPages = @totalRows / '+cast(@pOnePageRows as varchar)+'
IF( @totalPages * '+cast(@pOnePageRows as varchar) + '< @totalRows)
SELECT @totalPages = @totalPages + 1
SELECT '+@pFields+' FROM(
SELECT ROW_NUMBER() OVER(order by '+@pSortField+') as ROWID, '+@pFields+' From '+@pTable+' where '+@pWhere+')
AS TSP
WHERE ROWID BETWEEN '+cast((((@pIndex-1)*@pOnePageRows)+1) as varchar)+'
AND '+cast((@pIndex*@pOnePageRows) as varchar)+'
SELECT @totalRows AS TOTALROWS,
@totalPages AS TOTALPAGES,
'+cast(@pIndex as varchar)+' AS CURRENTPAGE,
'+cast(@pOnePageRows as varchar)+' AS ONEPAGEROWS '
end
print @s
exec(@s)

F. MS sql如何使用存儲過程

一、存儲過程的概念
T-SQl和C語言一樣 ,是一門結構化的語言。
什麼是存儲過程?
存儲過程是SQL查詢語句與控制流程語句的預編譯集合,並以特定的名稱保存在資料庫中。存儲過程也是資料庫對象
分類:
系統存儲過程: 以sp_或xp_打頭
用戶自定義 :以proc_打頭
存儲過程的優點:
執行速度快 效率高
模塊式編程
減少網路流量
提高安全性
二、系統存儲過程
SQl server 的系統存儲過程保存在master資料庫中,且所有命名的系統存儲過程命名以「Sp_」開頭。在master資料庫中,
系統存儲過程數量如下:
代碼如下 復制代碼
select count([name])as '系統存儲數量' from sysobjects
where [name] like 'sp_%'

EXECUTE 用來表示調用存儲過程,也可以縮寫為EXEC,
調用存儲的語法如下:
EXECUTE 『存儲過程名』 『參數』 ---如果沒有參數則省略參數
常用的系統存儲過程
EXEC sp_databases 列出當前系統中的資料庫
EXEC sp_renamedb 'Northwind','Northwind1' 修改資料庫的名稱(單用戶訪問)
USE stuDB GO EXEC sp_tables 返回某個表列的信息
EXEC sp_columns 查看指定列的信息
EXEC sp_help 查看某個表的所有信息
EXEC sp_helpconstraint '表名' 查看某個表的約束
EXEC sp_helpdb '資料庫名' 或 EXEC sp_helpdb 查看指定資料庫或所有資料庫信息
EXEC sp_helptext '對象名稱' 顯示資料庫對象(存儲過程、觸發器、試圖)的定義文本
EXEC sp_helpindex '表名' 查看指定表的索引信息
EXEC sp_renamedb '原名稱','新名稱' 更改資料庫名稱
EXEC sp_stored_proceres 列出當前環境可用的所有存儲過程

除了系統存儲過程,SQL Server 還提供以Xp_開頭的擴展存儲過程,如可以調用DOS命名的,XP_cmdshell 存儲過程
用法如下:

代碼如下 復制代碼

EXEC Xp_cmdshell DOS 命名 [NO_OUTPUT]


NO_OUTPUT 為可選參數,表示是否輸入存儲過程返回的信息
三、用戶自定義存儲過程
1、語法
代碼如下 復制代碼
create procere 存儲過程名
@參數1名 數據類型 [=默認值] [參數類型(輸入/輸出)]
... ...
@參數n名 數據類型 [=默認值] [參數類型(輸入/輸出)]
as
begin
sql語句
end;
go

參數類型分為輸入參數和輸出參數,默認為輸入參數,使用OUTPUT表示輸出參數。創建存儲過程最好以proc開頭

2、創建不帶參數的存儲過程

代碼如下 復制代碼
--判斷存儲過程是否存在
if object_id('proc_student','procere') is not null
drop procere proc_student
go
create procere proc_student
as
begin
select pcid as '電腦編號',
case pcuse
when 0 then '空閑'
when 1 then '忙碌'
end as '使用狀態' from pc
end;
--調用存儲過程
execute proc_student select * from pc
go

3、創建帶輸入參數的存儲過程
語法:
代碼如下 復制代碼
create procere 存儲過程名
@參數1名 數據類型 [=默認值]
....
@參數2名 數據類型[=默認值]
as
SQl與語句
...
go

--例如
--創建帶輸入參數的存儲過程
代碼如下 復制代碼
if object_id('proc_stu','procere') is not null
drop procere proc_stu
go
create procere proc_stu
@pcuse int
as
begin
select pcid as '電腦編號',
case pcuse
when 0 then '空閑'
when 1 then '忙碌'
end as '使用狀態' from pc where pcuse=@pcuse end;
--調用存儲過程
execute proc_stu @pcuse=1

4、創建帶輸出參數的存儲過程
代碼如下 復制代碼
--創建帶輸出參數的存儲過程
if OBJECT_ID('proc_s','procere') is not null
drop procere proc_s
go
create procere proc_s
@pcid int,
@pcus int output
as
begin
select @pcus=pcuse from pc where pcid=@pcid end;
--調用存儲過程
declare @pcus int execute proc_s 5,@pcus output


四、處理錯誤信息
當存儲過程的語句十分復雜時,可以在存儲過程中加入錯誤語言。SQL Server中可以使用RAISERROR 返回用戶自定義的錯誤信息。
RAISERROR 語法如下:

RAISERROR (自定義的錯誤信息,錯誤的嚴重級別,錯誤狀態)

自定義錯誤信息:表示輸出信息:表示輸出的錯誤提示文本
錯誤的嚴重級別:表示用戶自定義錯誤的嚴重性級別。(0-18極)
錯誤的狀態:表示自定義錯誤的狀態,值的范圍在1-127