文章詳情頁
SQL Server 存儲過程嵌套示例
瀏覽:5日期:2023-11-02 10:04:46
1) 事例數據庫表:企業信息表
表名稱prd_wxt_enterprise_tbl_EnterpriseInfo數據來源存儲數據企業信息表主鍵/外鍵字段名稱說明類型(精度范圍)備注cEnterpriseIdn 企業IDChar(10)sEnterpriseNamen 企業名稱Varchar(200)sShortNamen 簡稱Varchar(50)sAddressn 地址nVarchar(200)E_systemn 企業所屬系統(0新系統,空或1為舊系統)Char(1)
產品表表名稱Shop_tbl_ProductInfo數據來源存儲數據產品表主鍵/外鍵字段名稱說明類型(精度范圍)備注P_Code(PK)n 產品SKU號,即下單號,產品系統編號(p123456789)Char(10)not nullEnterpriseIdn 企業IDChar(10)not nullP_Namen 產品名稱Nvarchar(100)not nullP_Pricen 產品價格(單位元)MoneyP_UserPricen 產品會員價(單位元)MoneyRemarkn 備注Nvarchar(500)
2);;;;;要實現的功能:刪除舊企業數據及相關的產品,要求用嵌套存儲過程實現3);;;;;存儲過程:包括兩個存儲過程a) 存儲過程一:根據企業ID,刪除該企業及下面的產品:存儲過程代碼如下:/*功能:刪除企業,同時刪除關聯的表,包括企業表及其關聯的產品表數據創建人: 創建日期:2007-4-10修改日期:2007-4-10*/CREATE PROCEDURE [DeleteEnterprise] (@EnterpriseID nvarchar(10))ASdeclare @strSQL nvarchar(4000)--刪除企業產品表select @strSQL = 'delete from Shop_tbl_ProductInfo where EnterpriseId=''+@EnterpriseID+''';exec(@strSQL)--刪除企業表select @strSQL = 'delete from prd_wxt_enterprise_tbl_EnterpriseInfo where cEnterpriseID=''+@EnterpriseID+''';exec(@strSQL)GOb);;;;;存儲過程二:選出舊企業的數據,然后通過循環嵌套的方式,通過循環語句調用存儲過程一,刪除所有的舊企業數據及其產品數據存儲過程代碼如下:/*功能:刪除舊企業數據,同時刪除關聯的表,包括創建人:創建日期:2007-4-11修改日期:2007-4-11*/CREATE PROCEDURE [DeleteOldEnterprise] ASdeclare @strSQL nvarchar(4000)declare @EnterpriseID nvarchar(10)DECLARE Enterprise_CURSOR Cursor FORSelect cEnterpriseId from prd_wxt_enterprise_tbl_EnterpriseInfo where e_system='1' or e_system is nullOPEN Enterprise_CURSORFetch next from Enterprise_CURSORinto @EnterpriseID--以下一直到END都是循環語句WHILE @@FETCH_STATUS = 0BEGIN--下面這行是調用存儲過程一刪除企業及其產品數據exec DeleteEnterprise @EnterpriseIDFetch next from Enterprise_CURSORinto @EnterpriseIDENDCLOSE Enterprise_CURSORDEALLOCATE Enterprise_CURSORGO 標簽:
Sql Server
數據庫
排行榜