當前位置:首頁 » 服務存儲 » 資料庫的存儲過程專題報告
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫的存儲過程專題報告

發布時間: 2023-03-20 06:06:02

資料庫實驗報告

表建得不合理,不符合資料庫規范化要求,課程並不是由學號所決定了,課程可作為一個獨立的表,還有,成績是有學號和課程號共同決定的,因此成績表也應該列出來作為一個獨立的表。
應該分為3個表來建立資料庫
1、學生信息表(學號,姓名,性別,出生日期,聯系電話)
2、課表(課程號,課程名)
3、成績表(學號,課程號,成績)
期中學號是學生表的主鍵,課程號是課表的主鍵,學號和課程號組合是成績表的主鍵,兩者共同決定成績。
拆分出來後,避免了數據冗餘的問題,消除專遞依賴!
完整性參照很簡單,你自己解決吧。

❷ 資料庫存儲過程有哪些,面試題

資料庫存儲過程有哪些
/*
系統存儲過程很多,有些常用,有些不常用
常用:
sp_attach_db 附加資料庫到一個伺服器中
sp_columns 返回在當前環境中列的信息
sp_databases 列出當前系統中的資料庫
sp_configure 顯示或修改當前伺服器的全局配置
sp_depends 顯示資料庫對象的依賴信息
sp_executesql 執行動態的T-SQL語句
sp_help 報告有關資料庫對象的信息
sp_helpdb 返回指定資料庫或全部資料庫的信息
sp_helptext 顯示規則、默認值、存儲過程、觸發器、視圖等的未加密的文本定義信息
sp_indexes 返回指定遠程表的索引信息
sp_lock 返回有關鎖的信息
sp_password 增加或者修改指定login的口令
sp_rename 更改用戶創建的資料庫對象名稱
sp_renamedb 更改資料庫名稱
sp_spaceused 顯示資料庫的空間使用情況
sp_tables 返回在當前環境中可以被查詢的對象的列表
sp_who 提供當前用戶和進程的信息
不常用:
sp_addlinkedserver 創建一個允許執行分布式查詢的鏈接伺服器
sp_addlinkedsrvlogin 在本地伺服器和遠程伺服器之間創建login帳戶的映射關系
sp_addlogin 創建一個新的login帳戶
sp_add_agent_parameter 在代理文件中增加一個參數
sp_add_agent_profile 為復制代理增加一個代理文件
sp_add_alert 創建一個警報
sp_add_category 在伺服器上,增加一種作業、警報或者操作員的特定分類
sp_add_data_file_recover_suspect_db 當資料庫復原不能完成時,向文件組增加一個數據文件
sp_add_file_recover_suspect_db 對於復原有問題的資料庫增加一個文件
sp_add_job 增加一個sql server agent可以執行的作業
sp_add_jobschele 為作業創建調度
sp_add_jobserver 把指定的作業增加到指定伺服器上
sp_add_jobstep 在作業中增加一步或一個操作
sp_add_log_file_recover_suspect_db 當資料庫復原不能完成時,向文件組增加一個日誌文件
sp_add_notification 為警報創建一個通知
sp_add_operator 為警報或者作業創建一個操作員
sp_add_targetservergroup 增加指定的伺服器組
sp_add_targetsvrgrp_member 在指定的目標伺服器組增加一個目標伺服器
sp_addalias 在資料庫中為login帳戶增加一個別名
sp_addapprole 在資料庫中增加一個特殊的應用程序角色
sp_addarticle 創建文章,並把該文章添加到出版物中
sp_adddistpublisher 創建一個使用本地分布伺服器的出版伺服器
sp_adddistributiondb 在分布伺服器上創建一個新的distribution資料庫
sp_adddistributor 增加一個分布伺服器
sp_addextendedproc 在系統中增加一個擴展存儲過程
sp_addgroup 在當前資料庫中增加一個組
sp_addmergearticle 為一個已有的合並出版物創建一個文章
sp_addmergefilter 為了連接另外一個表,創建一個合並過濾器
sp_addmergepublication 創建一個新的合並出版物
sp_addmergepullsubscription 增加一個拉回類型的訂閱物
sp_addmergepullsubscription_agent 在訂閱伺服器上,為合並拉回訂閱物創建一個代理
sp_addmergesubscription 創建一個推出或者拉回類型的訂閱物
sp_addmessage 在系統中增加一個新的錯誤消息
sp_addpublicaton 創建一個快照復制或者事務復制出版物
sp_addpublicaton_snapshot 創建一個快照代理
sp_addpullsusscription 在當前訂閱伺服器的資料庫中增加一個拉回或者匿名訂閱物
sp_addpullsusscription_agent 在訂閱伺服器的資料庫中增加一個新的代理
sp_addremotelogin 在本地伺服器上增加一個遠程login帳戶,允許執行遠程存儲過程調用
sp_addrole 在當前資料庫中增加一個角色
sp_addrolemember 為當前資料庫中的一個角色增加一個安全性帳戶
sp_addserver 添加一個遠程或者本地伺服器
sp_addsrvrolemember 為固定的伺服器角色增加一個成員
sp_addsubscriber 增加一個新的訂閱伺服器
sp_addsubscriber_schele 為分布代理和合並代理增加一個調度
sp_addsubscription 訂閱文章並且設置訂閱伺服器的狀態
sp_addsynctrigers 在訂閱伺服器上創建一個立即修改觸發器
sp_addtabletocontents 在合並跟蹤表中插入一個參考
sp_addtype 創建一個用戶定義的數據類型
sp_admpdevice 增加一個備份設備
sp_adser 在當前資料庫中為一個新用戶增加一個安全性帳戶
sp_altermessage 修改錯誤信息的狀態
sp_addly_job_to_targets 把作業應用到一個或者多個目標伺服器
sp_approlepassword 在當前資料庫中改變應用程序角色的口令
sp_aarticle_validation 為指定的文章初始化確認請求
sp_aarticlecolumn 指定在文章中使用的列
sp_aarticlefilter 創建一個用於水平過濾數據的過濾器
sp_articleview 當表被過濾時,為文章創建一個同步化對象
sp_attach_single_file_db 在當前伺服器中,附加一個只有一個數據文件的資料庫
sp_aautostats 對於一個指定的索引或統計,自動顯示update statistics的狀態
sp_bindefault 把默認值綁定到列或用戶定義的數據類型上
sp_bindrule 把規則綁定到列或用戶定義的數據類型上
sp_bindsession 綁定或解除綁定與實例中的其它事務的連接
sp_browsereplcmds 在分布資料庫中返回一種可讀格式的結果集
sp_catalogs 返回指定連接伺服器中的系統目錄列表,在本地伺服器中等價於資料庫列表
sp_certify_removable 確認在可移動介質上用於分布的資料庫是否正確配置
sp_change_agent_parameter 修改復制代理配置使用的參數
sp_change_agent_profile 修改復制代理配置使用的配置參數
sp_change_users_login 修改login與當前資料庫中用戶之間的關系
sp_changearticle 改變文章的屬性
sp_changedbowner 改變當前資料庫的所有者
sp_changedistpublisher 改變分布出版伺服器的屬性
sp_changedistributor_password 改變分布伺服器的口令
sp_changedistributor_property 改變分布伺服器的屬性
sp_changedistribtutiondb 改變分布資料庫的屬性
sp_changegroup 改變安全性帳戶所屬的角色
sp_changemergearticle 改變合並文章的屬性
sp_changemergefilter 改變一些合並過濾器的屬性
sp_changemergepublication 改變合並出版物的屬性
sp_changemergepullsubscription 改變合並拉回出版物的屬性
sp_changemergesubscription 改變合並的推出或者拉回出版物的屬性
sp_changeobjectowner 改變對象的所有者
sp_changepublication 改變出版物的屬性
sp_changesubscriber 改變用於訂閱伺服器的選項
sp_changesubscriber_schele 改變用於分布式代理和事務代理的訂閱伺服器的調度
sp_changesubstatus 改變訂閱伺服器的狀態
sp_column_privileges 返回列的許可權信息
sp_column_privileges_ex 返回在鏈接伺服器上指定表的列的許可權信息
sp_columns_ex 返回在鏈接伺服器上列的信息
sp_create_removable 創建一個可移動介質資料庫
sp_createstats 創建單列的統計信息
sp_cursor 用於請求定位更新
sp_cursor_list 報告當前打開的伺服器游標屬性
sp_cursorclose 關閉和釋放游標
sp_cursorfetch 從游標中取出數據行
sp_cursoropen 定義與游標和游標選項相關聯的 SQL 語句,然後填充游標
sp_cursoroption 用於設置各種游標選項
sp_cycle_errorlog 關閉錯誤日誌文件重新開始錯誤記錄
sp_datatype_info 返回當前環境支持的數據類型信息
sp_dbfixedrolepermission 顯示每一個固定資料庫角色的許可
sp_dboption 顯示或修改資料庫選項
sp_dbremove 刪除資料庫和與該資料庫相關的所有文件
sp_defaultdb 設置登錄帳戶的默認資料庫
sp_defaultlanguage 設置登錄帳戶的默認語言
sp_delete_alert 刪除警報
sp_delete_backuphistory 刪除備份和恢復的歷史信息
sp_delete_category 刪除指定類型的作業、警報和操作員
sp_delete_job 刪除一個作業
sp_delete_jobschele 刪除作業的調度
sp_delete_jobserver 刪除指定的目標伺服器
sp_delete_jobstep 從作業中刪除指定的作業步驟
sp_delete_notfication 刪除發送給某個操作員的所有通知
sp_delete_operator 刪除操作員
sp_delete_targetserver 從可以使用的目標伺服器列表中刪除指定的伺服器
sp_delete_targetservergroup 刪除指定的目標伺服器組
sp_delete_targetsvrgrp_member 從目標伺服器組中刪除一個目標伺服器
sp_deletemergeconflictrow 刪除沖突表中的記錄行
sp_denylogin 防止window用戶或群組連接到 sql server
sp_describe_cursor 報告伺服器游標的屬性
sp_describe_cursor_columns 報告在伺服器游標的結果集中列的屬性
sp_describe_cursor_tables 報告伺服器游標參考的基表信息
sp_detach_db 分享伺服器中的資料庫
sp_drop_agentparameger 刪除配置文件中的一個或者多個參數
sp_drop_profile 刪除配置文件
sp_dropalias 刪除一個帳戶的別名
sp_dropapprole 刪除當前資料庫中的應用程序角色
sp_droparticle 從出版物中刪除一篇文章
sp_dropdevice 刪除資料庫或者備份設備
sp_dropdistpublisher 刪除出版伺服器
sp_dropdistributiondb 刪除分布資料庫
sp_dropdistributor 刪除分布伺服器
sp_dropdropextendedproc 刪除一個擴展存儲過程
sp_dropgroup 從當前資料庫中刪除角色
sp_droplinkedsrvlogin 刪除一個本地伺服器和連接伺服器的映射帳戶
sp_droplogin 刪除一個登錄帳戶
sp_dropmergearticle 從合並出版物中刪除一篇文章
sp_dropmergefilter 刪除一個合並過濾器
sp_dropmergepublication 刪除一個合並出版物和與其相關的快照復制
sp_dropmergepullsubscription 刪除一個合並拉回訂購物
sp_dropmergesubscription 刪除一個訂閱物
sp_dropmessage 刪除一個消息
sp_droppublication 刪除出版物和與其相關的文章
sp_droppullsubscription 刪除當前訂閱伺服器資料庫中的訂閱物
sp_dropremotelogin 刪除一個遠程登錄帳戶
sp_droprole 從當前資料庫中刪除一個角色
sp_droprolemember 從當前資料庫中的一個角色中刪除一個安全性帳戶
sp_dropserver 刪除一個遠程或者連接伺服器列表中的伺服器
sp_dropsrvrolemember 從一個固定的伺服器角色中刪除一個帳戶
sp_dropsubscriber 刪除一個訂閱伺服器
sp_dropsubscription 刪除訂閱物
sp_droptype 刪除一種用戶定義的數據類型
sp_dropuser 從當前資料庫中刪除一個用戶
sp_dropdropwebtask 刪除以前版本定義的web任務
sp_dsninfo 從一個與當前伺服器相關的分布伺服器返回ODBC和OLE DB數據源的信息
sp_mpparamcmd 返回存儲在分布資料庫中的參數化命令的詳細信息
sp_enumcodepages 返回一個字元集和代碼頁的列表
sp_enumcustomresovers 返回所有可用的定製解決方案表表
sp_enumdsn 返回所有可用的odbc和ole db數據源列表
sp_enumfullsubscribers 返回訂閱伺服器的列表
sp_expired_subscription_cleanup 周期性地檢查訂閱物的狀態是否失效
sp_fkeys 返回當前環境的外鍵信息
sp_foreignkeys 返回參照連接伺服器的表的主鍵的外鍵
sp_fulltext_catalog 創建和刪除全文本目錄
sp_fulltext_column 指定某一個列是否參加全文本索引
sp_fulltext_database 從當前資料庫中初始化全文本索引
sp_fulltext_service 改變Microsoft Search Service屬性
sp_fulltext_table 標記用於全文本索引的表
sp_generatefilters 在外鍵表上創建一個過濾器
sp_get_distributor 確定一個分布伺服器是否安裝在某個伺服器上
sp_getbindtoken 創建一個綁定的連接文本
sp_getmergedeletype 返回合並刪除的類型
sp_grant_publication_access 在出版物的訪問列表中增加一個用戶
sp_grantdbaccess 在當前資料庫中增加一個安全性帳戶
sp_grantlogin 允許Windows用戶或群組連接到 SQL Server
sp_help_agent_default 檢索作為參數傳送的代理類型的默認配置的標識號
sp_help_agent_parameter 返回代理配置的所有參數
sp_help_agent_profile 返回指定代理的配置
sp_help_alert 報告有關警報的信息
sp_help_category 提供有關作業、警報、操作員的指定種類的信息
sp_help_downloadlist 列出有關作業的信息
sp_help_fulltext_catalogs 返回有關全文本索引表的信息
sp_help_fulltext_columns 返回標記全文本索引的列信息
sp_help_fulltext_columns_cursor 使用游標檢索標記為全文本的索引列
sp_help_fulltext_tables 返回標記為全文本索引的表
sp_help_fulltext_tables_cursor 使用游標返回標記為全文本索引的表
sp_help_job 返回有關作業的信息
sp_help_jobhistory 提供有關作業的歷史信息
sp_help_jobschele 返回作業的調度信息
sp_help_jobserver 返回給定作業的伺服器信息
sp_help_jobstep 返回作業的步驟信息
sp_help_operator 返回有關操作員的信息
sp_help_publication_access 返回可以訪問指定出版物的帳戶列表
sp_help_targetserver 列出全部目標伺服器
sp_help_targetservergroup 列出指定伺服器組中的全部目標伺服器
sp_helparticle 顯示有關文章的信息
sp_helpconstraint 返回有關約束的類型、名稱等信息
sp_helpdbfixedrole 返回固定的伺服器角色的列表
sp_helpdevice 返回有關資料庫文件的信息
sp_helpdistpublisher 返回充當分布伺服器的出版伺服器的屬性
sp_helpdistributiondb 返回分布資料庫的屬性信息
sp_helpdistributor 列出分布伺服器、分布資料庫、工作目錄等信息
sp_helpextendproc 顯示當前定義的擴展存儲過程信息
sp_helpfile 返回與當前資料庫相關的物理文件信息
sp_helpfilegroup 返回與當前資料庫相關的文件組信息
sp_helpgroup 返回當前資料庫中的角色信息
sp_helpindex 返回有關表的索引信息
sp_helplanguage 返回有關語言的信息
sp_helplinkedsrvlogin 返回鏈接伺服器中映射的帳戶信息
sp_helplogins 返回有關login和與其相關的資料庫用戶信息
sp_helpmergearticle 返回有關合並文章的信息
sp_helpmergearticleconflicts 返回有關沖突的出版物中的文章信息
sp_helpmergeconflictrows 返回在指定沖突表中的行
sp_helpmergefilter 返回有關合並過濾器的信息
sp_helpmergepublication 返回有關合並出版物的信息
sp_helpmergepullsubscription 返回有關拉回訂閱物的信息
sp_helpmergesubscription 返回有關推出訂閱物的信息
sp_help_notification 報告對於給定操作員的警報信息
sp_helppublication 返回有關出版物的信息
sp_helprole 返回當前資料庫中的角色信息
sp_helprolemember 返回當前資料庫中角色成員的信息
sp_helprotect 返回有關用戶許可的信息
sp_helpserver 顯示特定遠程或者復制伺服器的信息
sp_helpsort 顯示系統的排列順序和字元集的信息
sp_helpsrvrole 顯示系統中的固定伺服器角色列表
sp_helpsrvrolemember 顯示系統中的固定伺服器角色成員的信息
sp_helpsubscrberinfo 顯示有關訂閱伺服器的信息
sp_helpsubscription 顯示有特定出版物等有關的訂閱物信息
sp_helpsubscription_properties 檢索安全性信息
sp_helptrigger 顯示觸發器的類型
sp_helpuser 顯示當前資料庫中的用戶、Windows NT用戶和組、角色等信息
sp_indexoption 為用戶定義的索引設置選項
sp_link_publication 設置立即修改訂閱伺服器的同步化觸發器使用的配置和安全性信息
sp_linkedservers 返回在本地伺服器上定義的鏈接伺服器的列表
sp_makewebtask 創建一個執行html文檔的任務
sp_manage_jobs_by_login 刪除或者重新指定屬於login的作業
sp_mergemmyupdate 製作用於合並復制的修改備份
sp_mergesubscription_cleanup 刪除元數據
sp_monitor 顯示系統的統計信息
sp_msx_defect 從多個伺服器操作中刪除當前伺服器
sp_msx_enlist 增加當前伺服器到可用的目標伺服器列表中
sp_pkeys 返回某個表的主鍵信息
sp_post_msx_operation 插入一些目標伺服器可以執行的信息
sp_primarykeys 返回主鍵列的信息
sp_processmail 使用擴展存儲過程修改郵件信息
sp_procoption 設置或者顯示過程選項
sp_publication_validation 初始化文章校驗請求
sp_purge_jobhistory 刪除作業的歷史記錄
sp_recompile 使存儲過程和觸發器在下一次運行時重新編譯
sp_refreshsubscriptions 在拉回出版物中增加訂閱物到文章中
sp_refreshview 刷新指定視圖的元數據
sp_reinitmergepullsubscription 標記一個合並拉回訂閱
sp_reiniteergesubscription 標記一個合並訂閱
sp_reinitpullsubscription 標記一個事務訂閱或者匿名訂閱
sp_reinitsubscription 重新初始化訂閱
sp_remoteoption 顯示或者修改遠程登錄帳戶的選項
sp_remove_job_from_targets 從給定的目標伺服器中刪除指定的作業
sp_removedbreplication 從資料庫中刪除所有的復制對象
sp_replcounters 返回復制的統計信息
sp_repldone 修改伺服器做的分布事務的統計信息
sp_replflush 處理文章的高速緩沖存儲區
sp_replication_agent_checkup 檢查每一個分布資料庫
sp_replicationdboption 在當前資料庫中設置復制資料庫的選項
sp_replsetoriginator 用於在事務復制中檢測循環登錄
sp_replshowcmds 返回標記復制的事務命令
sp_repltrans 返回在出版資料庫事務日誌中的所有事務的結果集
sp_resetstatus 重新設置異常資料庫的形態
sp_resync_targetserver 重新同步所有的多伺服器作業
sp_revoke_publication_access 從出版資料庫的訪問列表中刪除login帳戶
sp_revokedbaccess 從當前資料庫中刪除安全性帳戶
sp_revokelogin 刪除系統的login帳戶
sp_script_synctran_commands 生成一個可以用於立即修改訂閱物的腳本
*/

❸ MySQL資料庫新特性之存儲過程入門教程

在MYSQL 中 終於引入了存儲過程這一新特性 這將大大增強MYSQL 的資料庫處理能力 在本文中 將指導讀者快速掌握MYSQL 的存儲過程的基本知識 帶領用戶入門

存儲過程介紹

存儲過程是一組為了完成特定功能的SQL語句集 經編譯後存儲在資料庫中 用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它 存儲過程可由應用程序通過一個調用來執行 而且允許用戶聲明變數 同時 存儲過程可以接收和輸出參數 返回執行存儲過程的狀態值 也可以嵌套調用

存儲過程的優點

作為存儲過程 有以下這些優點

( )減少網路通信量 調用一個行數不多的存儲過程與直接調用SQL語句的網路通信量可能不會有很大的差別 可是如果存儲過程包含上百行SQL語句 那麼其性能絕對比一條一條的調用SQL語句要高得多

( )執行速度更快 存儲過程創建的時候 資料庫已經對其進行了一次解析和優化 其次 存儲過程一旦執行 在內存中就會保留一份這個存儲過程 這樣下次再執行同樣的存儲過程時 可以從內存中直接中讀取

( )更強的安全性 存儲過程是通過向用戶授予許可權(而不是基於表) 它們可以提供對特定數據的訪問 提高代碼安全 比如防止 SQL注入

( ) 業務邏輯可以封裝存儲過程中 這樣不僅容易維護 而且執行效率也高

當然存儲過程也有一些缺點 比如

可移植性方面 當從一種資料庫遷移到另外一種資料庫時 不少的存儲過程的編寫要進行部分修改

存儲過程需要花費一定的學習時間去學習 比如學習其語法等

在MYSQL中 推薦使用MYSQL Query Browswer()這個工具去進行存儲過程的開發和管理 下面分步驟來學習MYSQL中的存儲過程

定義存儲過程的結束符

在存儲過程中 通常要輸入很多SQL語句 而SQL語句中每個語句以分號來結束 因此要告訴存儲過程 什麼位置是意味著整個存儲過程結束 所以我們在編寫存儲過程前 先定義分隔符 我們這里定義 // 為分隔符 我們使用DELIMITER //這樣的語法 就可以定義結束符了 當然你可以自己定義其他喜歡的符號

如何創建存儲過程

下面先看下一個簡單的例子 代碼如下

DELIMITER//CREATEPROCEDURE`p ` ()LANGUAGE SQLDETERMINISTICSQL SECURITY DEFINERMENT A procere BEGINSELECT Hello World ! ;END//

下面講解下存儲過程的組成部分

)首先在定義好終結符後 使用CREATE PROCEDURE+存儲過程名的方法創建存儲過程 LANGUAGE選項指定了使用的語言 這里默認是使用SQL

)DETERMINISTIC關鍵詞的作用是 當確定每次的存儲過程的輸入和輸出都是相同的內容時 可以使用該關鍵詞 否則默認為NOT DETERMINISTIC

) SQL SECURITY關鍵詞 是表示調用時檢查用戶的許可權 當值為INVOKER時 表示是用戶調用該存儲過程時檢查 默認為DEFINER 即創建存儲過程時檢查

) MENT部分是存儲過程的注釋說明部分

lishixin/Article/program/MySQL/201404/30557

❹ 資料庫中的存儲過程到底是什麼能不能舉個詳細的例子

存儲過程,實際就是一段寫在資料庫中的代碼。。
由於此段資料庫操作代碼由伺服器完成,而客戶端只是進行簡單的參數提交,所以,可以有效的利用伺服器的強勁而減小對客戶機的負合。
如:你想插入一條數據到資料庫。
雖然你的要求是,先檢查表裡面是否己存在該項。
如果不存在就Insert,如果存在就UPDATE。
這個時候,你就可以把這個判斷用存儲過程來寫。
你的程序只要提示你想要保存到資料庫裡面的東西即可。
下面就是一個簡單的存儲過程。
CREATE
PROCEDURE
[insert_A_Employees]
(@fWorkNo
[int],
@fWorkName
[char](10),
@fDeptName
[varchar](20),
@fGroupName
[varchar](20),
@fRecordDate
[datetime])
AS
declare
@iCount
int
select
@iCount
=
count(*)
from
A_EMPLOYEES
where
@fWorkNo
=
fWORKNO
--統計該工號在資料庫的數量賦值給
@iCount
if
@iCount
=
0
--如果資料庫中不存在該工號
begin
INSERT
INTO
[CLKQ].[dbo].[A_Employees]
--則插入數據
(
[fWorkNo],
[fWorkName],
[fDeptName],
[fGroupName],
[fRecordDate])
VALUES
(
@fWorkNo,
@fWorkName,
@fDeptName,
@fGroupName,
@fRecordDate)
return
1
--返回一個標識
end
else
begin
--否則則更新數據
update
[CLKQ].[dbo].[A_Employees]
set
[fWorkName]=@fWorkName,
[fDeptName]=@fDeptName,
[fGroupName]=@fGroupName,
[fRecordDate]=@fRecordDate
where
[fWorkNo]=@fWorkNo
return
0
--返回一個標識
end
GO
此時你只要在客戶端程序提供:
@fWorkNo
,
@fWorkName
,
@fDeptName
,
@fGroupName
,
@fRecordDate
這幾個值就行了。。
其它處理過程就由伺服器方處理了。
以上是以
SQL
資料庫為例。。。
ACCESS
等資料庫沒有此功能。

❺ 實現從一個資料庫往另一個資料庫導數據的存儲過程怎麼寫

是靜態的數據導入,還是動態的數據?如果是靜態的話,用DBLINK進行抽取插入就行,每次取數據前,先森族把要導入資料庫的此鋒弊那張表清基租空,然後取數據insert進去就行,如果是動態的數據,最好是寫觸發,做快照,然後用過程每隔一定時間去抽快照表

❻ 資料庫系統原理 什麼是存儲過程有什麼優點

存儲過程也可以看成是函數的一種, 而且存儲過程中的過程如果放到了開發 系統的 D 層的時候執行效果也是相同的。 存儲過程是存儲在資料庫中的一個程序 塊, 裡麵包含了自己定義的一段程序來實現相應的功能,比如要選擇資料庫的表 裡面的記錄,就可以使用下面的存儲過程的框架:
這個實現的過程比較簡單, 就是利用的是資料庫自帶的存儲過程的模版,新 建存儲過

程的時候就可以非常方便的實現自己所需要的功能。 存儲過程中使用的 是資料庫的語言, 跟其他的高級語言的用法相似,熟練的使用資料庫的語言可以 加快開發的效率,技術也是很厲害的。 存儲過程的到底有什麼好處呢?一定要用存儲過程嗎? 存儲過程的優點: 1.存儲過程只在創造時進行編譯,以後每次執行存儲過 程都不需再重新編譯,而一般 SQL 語句每執行一次就編譯一次,所以使用存儲過 程可提高資料庫執行速度。 2.當對資料庫進行復雜操作時,可將此復雜操作用 存儲過程封裝起來與資料庫提供的事務處理結合一起使用。更多資料庫的知識, 盡在南京寶雲官網。 3.存儲過程可以重復使用,可減少資料庫開發人員的工作量 4.安全性高,可設定只有某此用戶才具有對指定存儲過程的使用權。 存儲過程有利於實現一系列的操作簡化,提高系統的執行效率,而且放在存 儲過程中的 SQL 語句是直接在資料庫中編譯過了的, 系統在執行的時候就可以減 少這部分代碼的資源開銷。 但是對於機房重構中,有時候我們只需要更新一個記錄中的某一個欄位的值, 這個時候用存儲過程就有點不劃算了,這個時候系統如 果不用存儲過程直接用 SQL 語句來說,是比較方便的。所以存儲過程並不是所有 的地方用都好,凡事都有一個合適的問題,一個度的問題。 可能有的人想存儲過程這么有用,而且對系統的性能有提升,那就強迫症的 都去使用存儲過程。 這里又有一個問題了,存儲過程的作用主要是對資料庫進行 操作, 那麼學過資料庫系統原理的我們就需要注意一個問題了,如何防止死鎖? 毫無節制的使用存儲過程, 而不考慮資料庫結構是不科學的。對於相同的表進行 不同的操作,所產生的結果也是不一樣的,產生的順序也是不一樣的,如何在存 儲過程中進行有效的操作來使系統健康強壯,這是需要注意的。 通過使用存儲過程, 可以更加清晰的理解資料庫和系統是如何相互關聯工作 的,存儲過程的使用不僅是一種技術上的提升,更是思想上的一種啟發,在今後 的開發工作中是否有相同的地方需要這樣的抽象封裝呢。 面對更多的重復出現的 封裝,我們的工作也將更加高效、簡潔。

❼ 存儲過程到底是什麼!

在大型資料庫系統中,存儲過程和觸發器具有很重要的作用。無論是存儲過程還是觸發器,都是sql 語句和流程式控制制語句的集合。就
本質而言,觸發器也是一種存儲過程。存儲過程在運算時生成執行方式,所以,以後對其再運行時其執行速度很快。sql server 2000 不僅提供了用戶自定義存儲過程的功能,而且也提供了許多可作為工具使用的系統存儲過程。

12.1.1 存儲過程的概念
存儲過程(stored procere)是一組為了完成特定功能的sql 語句集,經編譯後存儲在資料庫。中用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。

在sql server 的系列版本中存儲過程分為兩類:系統提供的存儲過程和用戶自定義存儲過程。系統過程主要存儲在master 資料庫中並以sp_為前綴,並且系統存儲過程主要是從系統表中獲取信息,從而為系統管理員管理sql server 提供支持。通過系統存儲過程,ms sql server 中的許多管理性或信息性的活動(如了解資料庫對象、資料庫信息)都可以被順利有效地完成。盡管這些系統存儲過程被放在master 資料庫中,但是仍可以在其它資料庫中對其進行調用,在調用時不必在存儲過程名前加上資料庫名。而且當創建一個新資料庫時,一些系統存儲過程會在新資料庫中被自動創建。用戶自定義存儲過程是由用戶創建並能完成某一特定功能(如查詢用戶所需數據信息)的存儲過程。在本章中所涉及到的存儲過程主要是指用戶自定義存儲過程。

12.1.2 存儲過程的優點
當利用ms sql server 創建一個應用程序時,transaction-sql 是一種主要的編程語言。若運用transaction-sql 來進行編程,有兩種方法。其一是,在本地存儲transaction- sql 程序,並創建應用程序向sql server 發送命令來對結果進行處理。其二是,可以把部分用transaction-sql 編寫的程序作為存儲過程存儲在sql server 中,並創建應用程序來調用存儲過程,對數據結果進行處理存儲過程能夠通過接收參數向調用者返回結果集,結果集的格式由調用者確定;返回狀態值給調用者,指明調用是成功或是失敗;包括針對資料庫的操作語句,並且可以在一個存儲過程中調用另一存儲過程。

我們通常更偏愛於使用第二種方法,即在sql server 中使用存儲過程而不是在客戶計算機上調用transaction-sql 編寫的一段程序,原因在於存儲過程具有以下優點:

(1) 存儲過程允許標准組件式編程
存儲過程在被創建以後可以在程序中被多次調用,而不必重新編寫該存儲過程的sql 語句。而且資料庫專業人員可隨時對存儲過程進行修改,但對應用程序源代碼毫無影響(因為應用程序源代碼只包含存儲過程的調用語句),從而極大地提高了程序的可移植性。

(2) 存儲過程能夠實現較快的執行速度
如果某一操作包含大量的transaction-sql 代碼或分別被多次執行,那麼存儲過程要比批處理的執行速度快很多。因為存儲過程是預編譯的,在首次運行一個存儲過程時,查詢優化器對其進行分析、優化,並給出最終被存在系統表中的執行計劃。而批處理的transaction- sql 語句在每次運行時都要進行編譯和優化,因此速度相對要慢一些。

(3) 存儲過程能夠減少網路流量
對於同一個針對數據資料庫對象的操作(如查詢、修改),如果這一操作所涉及到的 transaction-sql 語句被組織成一存儲過程,那麼當在客戶計算機上調用該存儲過程時,網路中傳送的只是該調用語句,否則將是多條sql 語句,從而大大增加了網路流量,降低網路負載。

(4) 存儲過程可被作為一種安全機制來充分利用
系統管理員通過對執行某一存儲過程的許可權進行限制,從而能夠實現對相應的數據訪問許可權的限制,避免非授權用戶對數據的訪問,保證數據的安全。(我們將在14 章「sqlserver 的用戶和安全性管理」中對存儲過程的這一應用作更為清晰的介紹)

注意:存儲過程雖然既有參數又有返回值,但是它與函數不同。存儲過程的返回值只是指明執行是否成功,並且它不能像函數那樣被直接調用,也就是在調用存儲過程時,在存儲過程名字前一定要有exec保留字(如何執行存儲過程見本章下一字)。

❽ 資料庫中什麼是存儲過程作用是什麼

存儲過程,就是帶有名字的一個程序塊。
過程,就是程序塊,說白了就是一段程序。
存儲過程,創建完成之後,就存儲在資料庫內部了,資料庫幫你記著,存儲過程創建的時候都有一個名字,將來你在你的程序當中,通過某種方式(不同編程語言有不同的方式),一般來講通過這個名字,去調用存儲過程,就像使用一個方法或者函數一樣,它就去做一件事!
不同的資料庫的存儲過程,都是用當前自己這個資料庫的編程語言來編寫的,比如oracle的pl/sql編程,等等。

❾ 如何查看存儲過程運行到哪個語句了

存儲過程(procere 過程)

SQL Server2005 的存儲過程包含一些 T-SQL 語句並以特定的名稱存儲在數據中(存儲過程也是一種資料庫對象)可以在存儲過程中聲明變數,有條件的執行及其他各項強大的程序設計功能

SQL Server2005 的存儲過程與其它育種設計語言的過程類似,同樣按以下方式運行:
(1)它能夠包含執行各種資料庫操作的語句,並且可以調用其他的存儲過程;
(2)能夠接受輸入參數,並以輸出參數的形式將多個數據值返回給調用程序(Calling Procere)或批處理(Batch);
(3)向調用程序或批處理返回一個狀態值,以表明成功或失敗(以及失敗的原因);
(4)存儲過程(Stored Proceres) 是一組為完成特定功能的SQL 語句集,經編譯後,存儲在資料庫中,用戶通過指定存儲過程的名字給出參
數(如果該存儲過程帶有參數)來執行它;

存儲過程的類型:
一、(系統存儲過程):存儲過程在運行時生成執行方式,其後在運行時執行速度很
SQL Server2005 不僅提供用戶自定義存儲過程的功能,而且也提供許多可作為工具使用的系統存儲過程;
系統存儲過程(Systerm StroedProceres) 主要存儲在master資料庫中,並以 sp_ 為前輟,並且系統存儲過程主要是從系統表中獲取信息,從而為管理員SQL Server2005提供支持。通過系統存儲過程SQL Server2005中的許多管理性或信息性的活動(如了解數據對象,資料庫信息等)都可以被有效地完成,盡管這些系統存儲過程被存儲在master資料庫中,但是仍然可以在其他 資料庫中對其進行調用,在調用時,不必在存儲過程前面加上資料庫名,而且當創建一個資料庫時,一些存儲過程會在新的資料庫中被自動創建;
系統存儲過程所能完成操作很多,如提供幫助的存儲過程
sp_helpsql 顯示關於SQL語句,存儲過程和其他主題的信息
sp_help 提供關於存儲過程或其他資料庫對象的報告
sp_helptext 顯示存儲過程和其他對象文本
sp_depends 列舉引用或依賴指定對象的所有存儲過程
sp_talbes 取得資料庫中關於表和視圖的相關信息,
sp_renameedb 更改資料庫的名稱

SQL Server2005系統存儲過程可以使用戶很容易地從系統表中提取信息,管理資料庫,並執行涉及更新系統表的其他任務
系統存儲過程中在master資料庫中創建,由系統管理員管理,所有系統存儲過程的名字均以sp_開始
如果過程以sp_前綴命名的過程在當前資料庫中找不到,SQL Server2005就在master資料庫中尋找,以sp_前綴命名的過程中引用的表如果不能在當前資料庫中解析出來,將在master資料庫查找

當前系統存儲過程的參數是保留字或對象名,且對象名由資料庫或擁有者名字限定時,整個名字必須包含在單引號中,一個用戶可以在所有資料庫中執行一個系統存儲過程的許可權,否則在任何資料庫中都不能執行系統存儲過程

二、(本地存儲過程)
本地存儲過程(Local Stored Proceres)也就是用戶自行創建並存儲在用戶資料庫中的存儲過程,一般所說的存儲過程就是指的是本地的
用戶創建的存儲過程是由用戶創建並能完成某一特定功能(如:查詢用戶所需要的數據信息)的存儲過程

三、(臨時存儲過程)
臨時存儲過程(Temporary StoredProceres)可分為以下兩種
1)本地臨時存儲過程
不論哪一個資料庫是當前資料庫,如果在創建存儲過程時,以井字型大小 (#) 作為其名稱的,第一個字元,則該存儲過程將成為一個存放在tempdb資料庫中的本地臨時存放存儲過程(如:CREATE PROCEDURE #book_proc) 本地臨時存儲過程只有創建它的連接的用戶才能夠執行它,而且一但這位用戶斷開與 sql-server的連接(也就是注銷sql-server2005)本地臨時存儲過程就會自動刪除,當然,這位用戶也可以連接期間用 DROP PROCEDURE 命令刪除他所創建的本地臨時存儲過程;
由於本地存儲過程的適用范圍僅限於創建它的連接,因此,不需擔心其名稱會和其他連接所採用的名稱相同

2)全臨時存儲過程
不論哪一個資料庫當前資料庫,只要所創建的存儲過程名稱是以兩個井字型大小(##)開始,則該存儲過程將成為一個存儲在tempdb 資料庫中的全局臨時存儲過程(例如:create procere ##book_proc) 全局臨時存儲過程一旦創建,以後連接到 SQL Server2005 的任意用戶都能執行它,而且不需要特定的許可權
當創建全局臨時存儲過程的用戶斷開與SQL Server2005的連接時,SQL Server2005將檢查是否有其他用戶在執行該全局臨時存儲過程,如果沒有,便立刻將全局臨時存儲過程刪除,如果有SQL Server2005會讓這些正在執行中的操作繼續進行,但是不允許任何用戶再執行全局臨時存儲過程,等到有未完成的操作執行完畢後,全局臨時存儲過程就會自動刪除;
由於全局臨時存儲過程能夠被所有的連接用戶使用,因些必須注意其名稱不能和其他連接所採用的名稱相同
不論創建的是本地臨時存儲過程還是全局臨時存儲過程,只要SQL Server2005一停止運行,它們將不復存在;

四(遠程存儲過程)
在SQL Server2005 中,遠程存儲過程(Remote Stored Proceres)是位於遠程伺服器上的存儲過程,通常可以使用分布式查詢和 excute 命令執行一個遠程存儲過程;

五(擴展存儲過程)
擴展存儲過程(Extended Stored Proceres)是用戶可以使用外部程序語言編寫的存儲過程,通過擴展存儲過程可以彌補SQL Server2005的不足,它在使用和執行上與一般的存儲過程完全相同;可以將參數傳遞給擴展存儲過程,擴展存儲過程也能夠返回結果和狀態值;
為了區別擴展存儲過程的名稱通常以xp_開頭,擴展存儲過程是以動態鏈接庫(DLLS)的形式存在,能讓SQL Server2005動態地裝載和執行,擴展存儲過程一定要存儲在系統資料庫 master 中

存儲過程的優點
(1) 通過本地存儲、代碼預編譯和緩存技術實現高性能的數據操作
(2) 通過用編程結構和過程實現編程框架;如果業務規則發生變化,可以通過修改存儲過程來適應新的業務規則,而不必修改客戶端的應用程 序,這樣所有調用該存儲過程的應用程序就會遵循新的業務規則;
(3) 通過隔離和加密的方法提高資料庫的安全性。資料庫可以通過得到許可權來執行存儲過程,而不必給予用戶直接訪問資料庫對象的許可權,這 些對象交收存儲過程來執行操作,另外,存儲過程可以加密,這樣用戶就無法閱讀存儲過程中的T-sql語句。這樣做將資料庫的結構和數 據庫用戶隔離開來,時一步保證數據的完整性和可靠性;

存儲過程與視圖的比較
(1) 可以在單個存儲過程執行一系列T-SQL 語句,而在視圖中只能是 select 語句
(2) 視圖不能接受參數,只能返回結果集;而存儲過程可以接受參數,包括輸入,輸出參數,並能返回單個或多個結果集以及返回值,這樣可 大大地提高應用的靈活性;
一般來說,人們將經常用到的多個表的連接查詢定義為視圖,而存儲過程完成復雜的一第列的處理,在存儲過程中也會經常用到視圖;

創建存儲過程
CREATE PROCEDURE procere_name
[WITH ENCRYPTION]
[WITH RECOMPILE]
AS
Sql_statement

其中 with encryption 對存儲過程進行加密; with recompile 對存儲過程重新編譯
例如:使用T-SQL 語句在book資料庫中創建一個名為p_book1的存儲過程 該存儲過程返回book1表中所有出版社為"中國長安"的記錄
USE book
GO
CREATE PROCEDURE p_book1
AS
SELECT * FROM book1 WHERE 出版社='中國長安'

執行存儲過程

存儲過程創建成功後,用戶可以執行存儲過程來檢查存儲過程的返回結果;基本語法如下:
exec procere_name
例如:使用T-SQL語句執行上面創建的存儲過程 運行命令如下:
USE book
GO
exec p_book1
在運行完畢後,在SQL-Server ManagementStudio 查詢窗口中返回的結果
存儲過程創建成功後可以在 SQL-Server ManagementStudio 窗口中下查看存儲過程的屬性
例如:在 SQL-Server ManagementStudio 窗口中查看存儲過程 p_book1 的屬性:
對象資源管理器-> 展開book選項-> 展開可編程性-> 右擊 p_book1選擇修改命令 就可以修改存儲過程命令屬性

帶參數的存儲過程

由於視圖沒有提供參數,對於行的篩選取只能綁定在視圖中定義,靈活性不大,而存儲過程提供了參數,大大提高了系統開發的靈活性
向存儲過程設定輸入、輸出參數主要目的是通過參數向存儲過程輸入和輸出信息來擴展存儲過程的功能,能過設定能數,可以多次使用同一存儲過程並按要求查找所需要的結果;

1、帶輸入參數的存儲過程
輸入參數是指由調用程序向存儲過程傳遞的參數,它們在創建存儲過程語句中被定義,在執行存儲過程中給出相應的變數值,為了定義輸入參數存儲過程,需要在 create procere 語句中聲明一個或多個變數作為參數;其語法格式如下:
CREATE PROCEDURE procerd_name
@parameter_name datatype=[default]
[with encryption]
[with recompile]
AS
Sql_statement

其中各項參數如下
(1) @parameter_name: 存儲過程的參數名稱,必須以符號@為前綴
(2) Datatype: 參數的數據類型
(3) Default: 參數的默認值,如果執行存儲過程時未提供該參數的變數值,則使用default值

例子:使用T-SQL語句在book數據表中創建一個名為p_book1p的存儲過程,該存儲過程能根據給定的出版社回該出版社代碼對應的book1表中的的記錄:

分析:直接把上面的例子最後面的SQL語句 select * from book1 where 出版社='中國長安' 將裡面的 「出版社='中國長安'」用變理代替為 select * from book1 where 出版社= @出版社 其中變數名 @出版社取了代值 '中國長安';由於使用了變數,所以需要定義該變數,我們把「出版社」的長度設為是20位字元串;所以在 AS 之前定義變更@出版社 varchar(20);

create procere p_book1p
@出版社 varchar(20)
AS
SELECT * FROM book1 WHERE 出版社=@出版社

執行含有輸入參數的存儲過程
1)使用參數名傳遞參數值
在執行存儲過程的語句中通過語句 @paramter_name=value 給出參數的傳遞值,當存儲過程含有多個參數時,參數值可以任意順序設定,對於允許空值和具有默認值的輸入參數可以不給出參數的傳遞值;其格式語法如下:
exec procere_name
[@paramenter_name=value]
[,....n]
例子:用參數名傳遞參數值的方法執行存儲過程p_book1p,分別查出出版社為'中國長安'和"安徽人民"書的記錄
exec p_book1p @出版社='中國長安'
go
exec p_book1p @出版社='安徽人民'
go

2) 按位置傳遞參數值
在執行存儲過程的語句中,不通過參數傳遞值面直接給出參數的傳遞值,當存儲過程含有多個輸入參數時,傳遞值的順序必須與存儲過程中定義的輸入參數順序相一致,按位置傳遞參數時,也可以忽略空值和具有默認值的參數,但不能因此破壞輸入參數的設定順序;比如:在一個含有4個參數的存儲過程中,用戶可以忽略第3和第四個參數,但無法在忽略第3個的情況下而指定第4個參數的輸入值;
語法格式如下:
exec procere_name
[value1,value2,....]

例子:用按位置傳遞參數值的方法執行存儲過程 p_book1p 分別查找出版社為「中國人口」和「內蒙人民」書的記錄
exec p_book1p '內蒙人民'
go
exec p_book1p '中國人口'
go

按位置傳遞參數值比按參數名傳遞參數值更簡捷比較適合參數值較少的情況,而按照參數名傳遞的方法使程序的可讀性增強,特別是參數數量較多時,建議用按參數名傳遞參數的方法,這樣的程序可讀性/可維護性都要好一些;

3) 帶輸出參數的存儲過程
如果需要從存儲過程中返回一個或多個值,可以通過在創建存儲過程的語句中定義輸出參數來實現,為了使用輸出參數,需要在
create procere 語句中指定 output 關鍵字 輸出語法如下: @parameter_name datatype=[defautl] OUTPUT
例如:創建存儲過程 p_book1Num 要求能根據用戶給定的出版社,統計該出版社的出書數量,並將數量以輸入變數的形式返回給用戶:
CREATE PROCEDURE p_bookNum
@出版社 var(20),@bookNum smallint output
AS
SET @BOOK1Num= --(這個裡面是給book1Num 賦值)
(
select count(*) from book1
where 出版社=@出版社
)
ptrint @book1Num

執行存儲過程p_book1Num
由於在存儲過程 p_book1Num 中使用了參數@出版社和@book1Num 所以在測試時需要先定義相應的變數,對於輸入參數@出版社需要賦值,而輸出參數 @book1Num 無需賦值,它是從存儲過程中獲得返回值供用戶進一步使用的

declare @出版社 varchar(20), @book1Num SMALLINT
set @出版社=「中國長安」
exec p_book1Num @出版社,@book1Num

說明:這里在是sql server2005 環境下進行測試的,而在進行系統開發時,往往變數的定義,賦值,使用都是在應用程序中設計的,存儲過程 p_book1Num 的 print @book1Num語句也是為了在 SQL Server2005環境中測試而設計的

刪除、修改、重命名存儲過程

修改存儲過程:是由alert 語句來完成的,語法如下:
ALTER procere procere_name
[with encryption]
[with recompile]
as
Sql_statement
例子:使用T-SQL語句修改存儲過程 p_book1p 根據用戶提供的出版社名稱進行模糊查詢並要求加密:

alter procere p_book1p
@出版社 varchar(20)
with encryption
as
select 出版社,ISBN號,定價,作者姓名
from book1,teacher
where book1.編號=teacher.編號 and 出版社 like '%@出版社%'

存儲過程的刪除:存儲過程的刪除是通過DROP語句來實現的
例如:使用T-SQL語句來刪除存儲過程p_book1
use book
go
drop procere p_book1

使用SQL-Server Management Studio窗口刪除存儲過程 p_book1p:
對象資源管理器-> 展開BOOK-> 展開可編程性-> 右鍵dbo.p_book1p->刪除 就可以了

存儲過程重命名:
對象資源管理器-> 展開BOOK-> 展開可編程性-> 右鍵dbo.p_book1p->重命名

存儲過程的重編譯處理
在存儲過程中所用的查詢只在編譯時進行優化,對資料庫進行索引或其他會影響資料庫統計的更改後,可能降低已編譯的存儲過程的效率,通過對存儲過程進行重新編譯,可以重新優化查詢;
在SQL-Server2005 中有三種方法重新編譯的方法:
1) 在創建存儲過程時使用 with recompile 子句
with recompile 子句可以指示 sql server2005 不將該存儲過程的查詢計劃保存在緩存中,而是在每次運行時重新編譯和優化,並創建新 的查詢計劃;下面是例子:
use book
go
create procere p_book1p
@出版社 varchar(20)
with recompile
as
select * from book1 where 出版社=@出版社
這種方法並不常用,因為在每次執行存儲過程時都要重新編譯,在整體上降低了存儲過程的執行速度,除非存儲過程本身是一個比較復雜,耗時的操作,編譯的時間相對於執行存儲過程時間少;

2) 在執行存儲過程時設定重新編譯選項
通過在執行存儲過程時設定重新編譯,可以讓SQL-Server2005在執行存儲過程時重新編譯該存儲過程,在這一次執行後,新的查詢計劃又被保存在緩存中;基語法格式是:
execute procere_name with recompile
以重新編譯的方式執行存儲過程p_book1p:
use book
go
execute p_book1p '中國長安'with recompile 此方法一般在存儲過程創建後,數據發生了顯著變化時使用

3) 通過系統存儲過程設定重新編譯選擇;其語法如下
exec sp_recomplie OBJECT 其中OBJECT 當前資料庫中的存儲過程,表或視圖的名稱
例子:執行下面的語句將導致book1表的觸發器和存儲過程在下次運行時將被重新編譯:
exec sp_recompile book

===========================================================================================================================
觸發器的創建和管理

概述:在SQL-Server2005資料庫系統中,存儲過程和觸發器都是SQL語句和流程式控制制語句的集合

===========================================================================================================================

❿ 資料庫怎麼編寫存儲過程

SQL Server的語法:

create procere proc_name

(@para1 int)

as

sql-statement;

Mysql的語法:

create procere proc_name

(para1 int)

sql-statement;

上面的para1是參數,如果不需要可以省略括弧里的內容

sql-statement是你存儲過程要執行的語句,

如果還有什麼疑問可以說出來