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,果然,這個方法大大地提高了 的速度,與之相比,昨天的...