當前位置:首頁 » 存儲配置 » sql存儲過程參數類型

sql存儲過程參數類型

發布時間: 2022-07-12 17:43:04

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

❷ SQL Server2005中存儲過程的類型有哪些

存儲過程是指封裝了可重用代碼的模塊或常式。存儲過程可以接受輸入參數、向客戶端返回表格或標量結果和消息、調用數據定義語言 (DDL) 和數據操作語言 (DML) 語句,然後返回輸出參數。在 SQL Server 2005 中,存儲過程有兩種類型:Transact-SQL 或 CLR。

Transact-SQL
Transact-SQL 存儲過程是指保存的 Transact-SQL 語句集合,可以接受和返回用戶提供的參數。例如,存儲過程中可能包含根據客戶端應用程序提供的信息在一個或多個表中插入新行所需的語句。存儲過程也可能從資料庫向客戶端應用程序返回數據。

CLR
CLR 存儲過程是指對 Microsoft .NET Framework 公共語言運行時 (CLR) 方法的引用,可以接受和返回用戶提供的參數。它們在 .NET Framework 程序集中是作為類的公共靜態方法實現的。

❸ SQL 存儲過程中參數怎麼使用

參數定義
單個參數
1>
CREATE
PROCEDURE
HelloWorld1
2>
@UserName
VARCHAR(10)
3>
AS
4>
BEGIN
5>
PRINT
'Hello'
+
@UserName
+
'!';
6>
END;
7>
go
1>
DECLARE
@RC
int;
2>
EXECUTE
@RC
=
HelloWorld1
'Edward'
;
3>
PRINT
@RC;
4>
go
HelloEdward!
0
IN、OUT、IN
OUT
註:
SQL
Server

OUTPUT
需要寫在變數數據類型後面。
SQL
Server
沒有
IN
OUT
關鍵字
OUTPUT
已經相當於
IN
OUT
了。
1>
CREATE
PROCEDURE
HelloWorld2
2>
@UserName
VARCHAR(10),
3>
@OutVal
VARCHAR(10)
OUTPUT,
4>
@InoutVal
VARCHAR(10)
OUTPUT
5>
AS
6>
BEGIN
7>
PRINT
'Hello
'
+
@UserName
+
@InoutVal
+
'!';
8>
SET
@OutVal
=
'A';
9>
SET
@InoutVal
=
'B';
10>
END;
11>
go
1>
2>
DECLARE
@RC
int,
@OutVal
VARCHAR(10),
@InoutVal
VARCHAR(10);
3>
BEGIN
4>
SET
@InoutVal
=
'~Hi~';
5>
EXECUTE
@RC
=
HelloWorld2
'Edward',
@OutVal
OUTPUT,
@InoutVal
OUTPUT;
6>
PRINT
@RC;
7>
PRINT
'@OutVal='
+
@OutVal;
8>
PRINT
'@InoutVal='
+
@InoutVal;
9>
END
10>
go
Hello
Edward~Hi~!
0
@OutVal=A
@InoutVal=B
參數的默認值
1>
CREATE
PROCEDURE
HelloWorld3
2>
@UserName
VARCHAR(10),
3>
@Val1
VARCHAR(20)
=
'
Good
Moning,',
4>
@Val2
VARCHAR(20)
=
'
Nice
to
Meet
you'
5>
AS
6>
BEGIN
7>
PRINT
'Hello
'
+
@UserName
+
@Val1
+
@Val2
+
'!';
8>
END;
9>
go
1>
2>
DECLARE
@RC
int;
3>
BEGIN
4>
EXECUTE
@RC
=
HelloWorld3
'Edward';
5>
PRINT
@RC;
6>
EXECUTE
@RC
=
HelloWorld3
'Edward',
'
Good
Night,';
7>
PRINT
@RC;
8>
EXECUTE
@RC
=
HelloWorld3
'Edward',
'
Good
Night,',
'
Bye';
9>
PRINT
@RC;
10>
END
11>
go
Hello
Edward
Good
Moning,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Bye!
0
指定參數名稱調用
此部分使用
「參數默認值」那一小節的存儲過程。
用於說明當最後2個參數是有默認的時候,如何跳過中間那個。
1>
DECLARE
@RC
int;
2>
BEGIN
3>
EXECUTE
@RC
=
HelloWorld3
'Edward';
4>
PRINT
@RC;
5>
EXECUTE
@RC
=
HelloWorld3
'Edward',
@Val1='
Good
Night,';
6>
PRINT
@RC;
7>
EXECUTE
@RC
=
HelloWorld3
'Edward',
@Val1='
Good
Night,',
@Val2='
Bye';
8>
PRINT
@RC;
9>
EXECUTE
@RC
=
HelloWorld3
'Edward',
@Val2='
HeiHei
';
10>
PRINT
@RC;
11>
END
12>
go
Hello
Edward
Good
Moning,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Bye!
0
Hello
Edward
Good
Moning,
HeiHei
!
0

❹ sql存儲過程解釋

CREATE PROCEDURE dbo.AddOrder
創建存儲過程AddOrder
/*
(
@parameter1 int = 5,
---參數1,int類型,默認值是5
@parameter2 datatype OUTPUT
---參數2,datatype類型,用於返回結果
)
*/(
---上面兩個參數被注釋掉了,也就是沒有用了。
@UserID int,
---參數 UserID,int類型
@CartIDString nvarchar(50),
---參數CartIDString,string類型
@OrderDate datetime,
---參數 OrderDate datetime類型
@OrderID int output)
---參數 OrderID,int類型,用於接收輸出值
AS
---開始存儲過程主體
begin tran OrderAdd
---開始事務處理
insert into Orders -------
( |
UserID, |
OrderDate) |
values |
(@UserID, |
@OrderDate) ------------- 到這里是插如一條數據到Orders表
select
@OrderID=@@Identity ------給OrderID賦值
insert into OrderContent -----開始插入數據到OrderContent表
(OrderID,
BookID,
BookQuantity,
UnitCost) -------設定要插入的4個欄位
select @OrderID,
ShopCart.BookID,
bookquantity,
books.bookprice ------設定要選擇的4個欄位
from
shopcart ------結合shopcart和books進行條件查詢
inner join books on shopcart.bookid=books.bookid
where
cartidstring=@cartidstring ----插入語句到此結束
exec emptyshoppingcart @cartidstring ---此處應該是執行了另外一個存儲過程
commit tran orderadd ---- 事務處理結束。

註:此存儲過程並不復雜,有難度的地方在第一條插入語句嵌套了使用了inner join的選擇語句。

❺ sqlserver2008存儲過程的參數有數組類型嗎

您好,沒有數組類型的.所有的參數類型都是systypes表裡面的.

❻ SQL Server 如何執行 帶參數的 存儲過程

帶參數的存儲過程執行方法如下:

(1)調用通用數據訪問類:SqlHelper,執行SqlHelper.ExecuteNonQuery()方法

(2)使用示例:SqlHelper.ExecuteNonQuery(conn,CommandType.StoredProcere,sqlexec,myparm)

(3)其中傳遞的4個參數如下:

「conn」:為鏈接字元

「CommandType.StoredProcere」:表示要執行的SQL存儲過程類型

「sqlexec」:要執行的SQL存儲過程

「myparm」:為傳遞的參數,它需要參數的初始化、賦予參數名稱、設定類型、長度和值等

(4)當ExecuteNonQuery()執行select 查詢時,結果總是返回-1。ExecuteNonQuery()執行Update、Insert和Delete語句時,返回值為該命令所影響的行數。

❼ 存儲過程中動態SQL中的傳入參數為datetime類型的問題

你先調試一下,少了個@和begin、end
另外,拼接變數不能在字元串內啊,這樣沒用

create procere [dbo].[baobiao1]
@date1 datetime,
@date2 datetime
as
set nocount on
begin
Set XACT_ABORT ON;
Begin Tran

Declare @SQL1 varchar(8000)
Declare @SQL2 varchar(8000)

--Set @SQL='Create view A as select ....'
--Exec(@SQL)

if exists (SELECT * FROM sysobjects WHERE name = 'report1')
begin
drop view report1
end
set @SQL1='create view report1 as select s.englishName,s.belongzu,count(*) kaitai,
jiachan=(case s.shiftName when ''甲'' then sum(s.realproc) else 0 end),
jiachaochan=(case s.shiftName when ''甲'' then sum(s.realproc-s.singleplan*s.workminute/60) else 0 end),
yichan=(case s.shiftName when ''乙'' then sum(s.realproc) else 0 end),
yichaochan=(case s.shiftName when ''乙'' then sum(s.realproc-s.singleplan*s.workminute/60) else 0 end),
bingchan=(case s.shiftName when''丙''then sum(s.realproc) else 0 end),
bingchaochan=(case s.shiftName when''丙''then sum(s.realproc-s.singleplan*s.workminute/60) else 0 end),
dingchan=(case s.shiftName when''丁''then sum(s.realproc) else 0 end),
dingchaochan=(case s.shiftName when''丁''then sum(s.realproc-s.singleplan*s.workminute/60) else 0 end),
(case when s.shiftName =''甲''then sum(p.cibushu) else 0 end) jiacibu,
(case when s.shiftName =''乙''then sum(p.cibushu) else 0 end) yicibu,
(case when s.shiftName =''丙''then sum(p.cibushu) else 0 end) bingcibu,
(case when s.shiftName =''丁''then sum(p.cibushu) else 0 end) dingcibu,
(case when s.shiftName =''甲''then sum(p.kaijianshu) else 0 end) jiakaijian,
(case when s.shiftName =''乙''then sum(p.kaijianshu) else 0 end) yikaijian,
(case when s.shiftName =''丙''then sum(p.kaijianshu) else 0 end) bingkaijian,
(case when s.shiftName =''丁''then sum(p.kaijianshu) else 0 end) dingkaijian
from HistoryPro1 s left outer join kaijianjicibu2 p on s.wholeDate = p.wholeDate AND
s.MachineID = p.MachineID AND
s.shiftName = p.shiftName where s.wholeDate >=『+@date1+『 and s.wholeDate <=』+@date2=『 group by s.englishName,s.belongzu,s.shiftName'
exec(@SQL1)
commit Tran
end
set nocount on
GO

❽ SQL 創建存儲過程,含兩個日期形式的參數,怎麼設置參數類型,怎麼調用

不要括弧,用空格把存儲過程名稱和參數隔開即可。

EXECaaaa'2013-01-01','2013-10-10'

❾ 如何用SQL語句查詢出指定的存儲過程的參數及其類型

SELECT *
FROM sys.proceres
WHERE Name = 'xxx'

熱點內容
2013年二級c語言真題 發布:2024-10-08 10:44:47 瀏覽:242
linux的locale 發布:2024-10-08 10:44:36 瀏覽:91
2rsa演算法 發布:2024-10-08 10:29:53 瀏覽:542
南京社保密碼多少 發布:2024-10-08 10:21:01 瀏覽:472
國內的少兒編程 發布:2024-10-08 10:21:00 瀏覽:520
vscode編譯調試閃退 發布:2024-10-08 10:19:27 瀏覽:671
oracle資料庫用戶許可權 發布:2024-10-08 09:46:00 瀏覽:708
立方的演算法口訣 發布:2024-10-08 09:44:30 瀏覽:820
python輸入到excel表格 發布:2024-10-08 09:36:31 瀏覽:285
腳本拒絕訪問閃退 發布:2024-10-08 09:34:55 瀏覽:939