存儲參數設計
① 設計一個存儲過程,要求有兩個參數(輸入和輸出),該存儲過程能夠返回指定欄位(輸入)的最大值(輸出)
--設計一個存儲過程,要求有兩個參數(輸入和輸出),該存儲過程能夠返回指定欄位(輸入)的最大值(輸出)
GO
IF exists (SELECT * FROM sysobjects WHERE id=object_id(N'Test_Procere'))
DROP PROCEDURE Test_Procere
GO
CREATE PROCEDURE Test_Procere
@Input INT, --輸入參數
@Output INT OUTPUT --指定參數為輸出參數
AS
BEGIN
SELECT @Output=MAX(<指定列>) FROM <表> --給輸出參數賦值
SELECT <指定列> FROM <表> WHERE <條件> --返回的結果集
END
② 存儲過程的參數問題
as前面的參數是外參,是調用存儲過程的時候要給他設置的,
as後面的參數是內參,是存儲過程內部使用的,declare是定義參數用的,就好像下面這樣:
public int test(int id)
{
int result=0;
return result;
}
id就是外參,就是調用test方法的時候需要輸入的,就像as前面的,result就是內參,是test方法內部使用的,就像as後面的參數
③ 如何創建帶參數的存儲過程
創建帶參數的存儲過程首先要在存儲過程中聲明該參數,每個存儲過程參數都必須用唯一的名稱進行定義。與T-SQL變數相同,參數名必須以@為前綴,並且遵從標識符規則。當用戶不提供該參數的值時可以使用一個默認值來代替。
④ 在資料庫存儲結構設計時要考慮哪些因素
第一:各個參數是否對應的一個對象(面向對象編程思想);
第二:各個參數可能類型和出現的最大長度,之後合理的設計各個欄位的最大長度和相應類型;
第三:各個參數中哪些欄位具有唯一性,考慮作為主鍵或者是外鍵來進行表關聯;
第四:根據數據量的大小來考慮是否需要進行分區處理;
第五:哪些欄位是不經常便跟欄位,可以考慮進行多張表的存儲來節省存儲空間(可能影響查詢修改效率)
⑤ 如何定義存儲過程的默認參數值.
在定義存儲過程的參數時候設定
例如:@a int =1
後面的 1 就是參數默認值
⑥ vb.net編寫程序時如何存儲設置參數
比較專業的做法是在項目中添加微軟的Application Settings類,詳細幫助文檔:
http://msdn.microsoft.com/zh-cn/library/c9db58th.aspx
使用極其簡單,假設在settings1.settings設置一個項目,名稱:IP,類型:String,范圍:用戶,值:192.168.1.1
調用:Dim sIP As String = setting.IP
獲取預設值:Dim sIP As String = Settings1.Default.IP
保存: setting.IP = "192.168.1.30" : setting.Save()
⑦ 關於資料庫的存儲過程的設計
這樣的問題回答過多次了。樓上說的都有一些道理,但不是全部。sp當然有執行效率,安全性高一點的好處,但並不是主要的。我認為sp的主要好處,是可以將部分運算集中在資料庫伺服器上。
舉個例子。比方我有個功能,查詢某一篇新聞,查詢出這篇文章的上一篇,下一篇文章,並把本類文章相關的文章按點擊量取出來,同時給這篇文章的點擊量加1,再同時把本類文章的訪問量加1。如果你不用存儲過程,你怎麼寫?用語句當然可以寫,要寫一大堆。更重要的是,你要先把本條文章的類別查詢出來,才能進行別的查詢。如果我用存儲過程,我就都寫存儲過程里了,一,減少了程序和資料庫之間的交互次數,自然也減少了連接數。此外,邏輯也靈活一些,比方那個我現在不想讓每次點擊都加一,我只要在存儲過程里把那條語句注釋起來就可以了。
存儲過程好處很多。當然憑個人愛好,很多不用存儲過程,程序一樣寫得很好。
⑧ 資料庫存儲過程設計
--第一題use master
go
--創建資料庫
if(db_id('studentDB')) is not null
drop database [studentDB]
create database [studentDB]
go
use [studentDB]
go
--創建學生表
create table [student]
(
[studentId] int identity(1,1) primary key,
[stuName] varchar(50) not null
)
go
use [studentDB]
go
--創建課程表
create table [subject]
(
[subjectId] int identity(1,1) primary key,
[subjectName] varchar(50) not null
)
go
use [studentDB]
go
--創建成績表(選課表)
create table [score]
(
[studentId] int,
[subjectId] int,
[score] int
)
go
--添加外鍵約束
--學生ID
alter table [score]
add constraint FK_score_student
foreign key([studentId])
references [student] ([studentId])
go
--科目ID
alter table [score]
add constraint FK_score_subject
foreign key([subjectId])
references [subject] ([subjectId])
go
--插入測試數據
insert [student]
select '張三' union
select '李四' union
select '王五' union
select '高六' union
select '趙七'
go
insert [subject]
select '語文' union
select '數學' union
select '英語'
go
insert [score]
select 1,1,50 union
select 1,2,51 union
select 1,3,52 union
select 2,1,60 union
select 2,2,61 union
select 2,3,62 union
select 3,1,70 union
select 3,2,71 union
select 3,3,72 union
select 5,1,90 union
select 5,2,89 union
select 5,3,88
go
use [studentDB]
go
--創建返回學生選課情況的存儲過程
create procere [pro_GetStudentScore]
@stuName varchar(50)
as
select sco.[studentId],sub.[subjectName],sco.[score]
from [subject] sub,[score] sco
where sub.[subjectId]=sco.[subjectId]
and sco.[studentId]=(select [studentId] from [student] where [stuName] = @stuName)
go
exec [pro_GetStudentScore] '趙七'
--select * from [student]
--select * from [subject]
--select * from [score]
⑨ 存儲過程中的參數問題
需要兩個輸入參數:
@CODE
@NAME
create proc uspSelcte
@code int,
@name varchar(20)
as
begin
select *
from student
where code=@code or name=@name
end
--------------------
使用方法:
EXEC uspSelcte '1',''
或者
EXEC uspSelcte '','張三'
⑩ 存儲器的技術參數是什麼
記憶元件可以是磁芯,半導體觸發器、MOS電路或電容器等。 位(bit)是二進制數的最基本單位,也是存儲器存儲信息的最小單位,8位二進制數稱為一個位元組(byte)。當一個數作為一個整體存入或取出時,這個數叫做存儲字。存儲字可以是一個位元組,也可以是若干個位元組。若干個憶記單元組成一個存儲單元,大量的存儲單元的集合組成一個存儲體(MemoryBank)。 為了區分存儲體內的存儲單元,必須將它們逐一進行編號,稱為地址。地址與存儲單元之間一一對應,且是存儲單元的唯一標志。應注意存儲單元的地址和它裡面存放的內容完全是兩回事。 存儲器在計算機中處於不同的位置,可分為主存儲器和輔助存儲器。在主機內部,直接與CPU交換信息的存儲器稱主存儲器或內存儲器。在執行期間,程序的數據放在主存儲器內,各個存儲單元的內容可通過指令隨機訪問,這樣的存儲器稱為隨機存取存儲器(RAM)。另一種存儲器叫只讀存儲器(ROM),裡面存放一次性寫入的程序或數據,僅能隨機讀出。RAM和ROM共同分享主存儲器的地址空間。 因於結構、價格原因,主存儲器的容量受限。為滿足計算的需要而採用了大容量的輔助存儲器或稱外存儲器,如磁碟、光碟等。 存儲器的主要技術指標 存儲器的特性由它的技術參數來描述。 一、存儲容量:存儲器可以容納的二進制信息量稱為存儲容量。主存儲器的容量是指用地址寄存器(MAR)產生的地址能訪問的存儲單元的數量。如N位字長的MAR能夠編址最多達2N個存儲單元。一般主存儲器(內存)容量在幾十K到幾M位元組左右;輔助存儲器(外存)在幾百K到幾千M位元組。 二、存儲周期:存儲器的兩個基本操作為讀出與寫入,是指將信息在存儲單元與存儲寄存器(MDR)之間進行讀寫。存儲器從接收讀出命令到被讀出信息穩定在MDR的輸出端為止的時間間隔,稱為取數時間TA;兩次獨立的存取操作之間所需的最短時間稱為存儲周期TMC。半導體存儲器的存儲周期一般為100ns-200ns。 三、存儲器的可靠性:存儲器的可靠性用平均故障間隔時間MTBF來衡量。MTBF可以理解為兩次故障之間的平均時間間隔。MTBF越長,表示可靠性越高,即保持正確工作能力越強。 四、性能價格比:性能主要包括存儲器容量、存儲周期和可靠性三項內容。性能價格比是一個綜合性指標,對於不同的存儲器有不同的要求。對於外存儲器,要求容量極大,而對緩沖存儲器則要求速度非常快,容量不一定大。因此性能/價格比是評價整個存儲器系統很重要的指標