sqlserver資料庫的儲存過程 簡單實用

2021-09-13 18:23:05 字數 2047 閱讀 8059

1.學習**

2.優缺點

儲存過程的優點:

1.儲存過程加快系統執行速度,儲存過程只在建立時編譯,以後每次執行時不需要重新編譯。

2.儲存過程可以封裝複雜的資料庫操作,簡化操作流程,例如對多個表的更新,刪除等。

3.可實現模組化的程式設計,儲存過程可以多次呼叫,提供統一的資料庫訪問介面,改進應用程式的可維護性。

4.儲存過程可以增加**的安全性,對於使用者不能直接操作儲存過程中引用的物件,sql server可以設定使用者對指定儲存過程的執行許可權。

5.儲存過程可以降低網路流量,儲存過程**直接儲存於資料庫中,在客戶端與伺服器的通訊過程中,不會產生大量的t_sql**流量。

提高速度,降低流量,簡化操作,增加安全性(資料庫可指定使用者許可權訪問儲存過程)

儲存過程的缺點:

1.資料庫移植不方便,儲存過程依賴與資料庫管理系統, sql server 儲存過程中封裝的操作**不能直接移植到其他的資料庫管理系統中。

2.不支援物件導向的設計,無法採用物件導向的方式將邏輯業務進行封裝,甚至形成通用的可支援服務的業務邏輯框架.

3.**可讀性差,不易維護。不支援集群。

依賴資料庫管理系統,移植性差等 我暫時只能了解這麼深,抱歉

//sql語句寫在資料庫中,使用者寫sql語句時,只需要寫函式名稱和引數即可。

3.我的使用

申明乙個查詢的儲存過程

create proc searcha(

@id varchar(36))as

select *from a where id = @id

執行呼叫如下

exec searcha '1';

執行上面呼叫等於:

select * from a where id = '1' 《==》 exec searcha '1';

申明乙個插入的儲存過程

create proc inserta(

@id varchar(36),

@passnum char(20))as

insert into dbo.a(id,passnum) values(@id,@passnum)

呼叫如下

exec inserta '21','666';

執行上面呼叫等於:

insert into dbo.a(id,passnum) values('21','666') 《==》 exec inserta '21','666'

其他儲存過程類似

如刪除create proc deletea(

@id varchar(36))as

delete from a where id=@id

呼叫刪除過程

exec deletea '5';

表名不能為引數 --下面這樣不行

--create proc deleteabyname(

-- @tname char(20),

-- @id varchar(36)

--)--as

-- delete from @tname where id = @id

想要儲存過程 表名也能為引數 設定,需類似下面這樣

這樣儲存過程不針對哪一張表,不同的表也可以復用

create proc selectfromt(

@tname char(20),

@id varchar(36))as

declare @sqlstr nvarchar(2000)

begin

set @sqlstr = n'select * from '+@tname+' where id ='+ @id

execute sp_executesql @sqlstr

end上面主要是用到了動態執行sql => execute sp_executesql sqlstring

上面字串我在前面加了n,雖然不加也可以

呼叫如下

exec selectfromt 'a','1';

--可能會有一些錯誤,要找出來自己改掉。

SQL server資料庫之儲存過程

在說儲存過程之前我們先說一下sql server資料庫的一些基本語法 0 sql server中的 塊 類似於各種開發語言,sql server也具有 塊的分割,大部分語言 塊用大括號分割 begin end 用於sql server資料庫中的 分割 1 變數的定義 賦值 輸出 declare a ...

SQL SERVER資料庫開發之儲存過程的應用

標 題 sql server資料庫開發之儲存過程的應用 作 者 栽培者 日 期 2005 12 27 序可能有不少朋友使用sql server做開發也已經有段日子,但還沒有或者很少在專案中使用儲存過程,或許有些朋友認為根本沒有必要使用儲存過程等等。其實當你乙個專案做完到了維護階段時,就會發現儲存過程...

儲存日語到sql server資料庫中 下

事實證明,我的 不是有一點問題,那是相當地有問題。被paul大大地比下去了。要加油啊!向paul學習。言歸正傳,前些日子我每次讀取乙個型別的檔案,都會上網去搜尋n多讀取該型別檔案的 今天paul說可以用stream來讀就行了,filestream,果然,這個方法大大地提高了 的速度,與之相比,昨天的...