存儲過程學習文檔_第1頁
存儲過程學習文檔_第2頁
存儲過程學習文檔_第3頁
存儲過程學習文檔_第4頁
存儲過程學習文檔_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、2015年12月29日14:36:371. 定義:將常用的或很復雜的工作,預先用SQL語句寫好并用一個指定的名稱存儲起來, 那么以后要叫數(shù)據(jù)庫提供與已定義好的存儲過程的功能相同的服務(wù)時,只需調(diào)用execute,即可自動完成命令。2.優(yōu)勢1.存儲過程只在創(chuàng)造時進行編譯,以后每次執(zhí)行存儲過程都不需再重新編譯,而一般SQL語句每執(zhí)行一次就編譯一次,所以使用存儲過程可提高數(shù)據(jù)庫執(zhí)行速度。2.當對數(shù)據(jù)庫進行復雜操作時(如對多個表進行Update,Insert,Query,Delete時),可將此復雜操作用存儲過程封裝起來與數(shù)據(jù)庫提供的事務(wù)處理結(jié)合一起使用。3.存儲過程可以重復使用,可減少數(shù)據(jù)庫開發(fā)人員的

2、工作量4.安全性高,可設(shè)定只有某此用戶才具有對指定存儲過程的使用權(quán)3.語法-創(chuàng)建存儲過程-CREATE PROC EDURE procedure_name ; number parameter data_type VARYING = default OUTPUT ,.n WITH RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION FOR REPLICATION AS sql_statement .n -調(diào)用存儲過程-EXECUTE Procedure_name '' -存儲過程如果有參數(shù),后面加參數(shù)格式為:參數(shù)名=value,也可直

3、接為參數(shù)值value-刪除存儲過程-drop procedure procedure_name -在存儲過程中能調(diào)用另外一個存儲過程,而不能刪除另外一個存儲過程創(chuàng)建存儲過程的參數(shù):1.procedure_name :存儲過程的名稱,在前面加#為局部臨時存儲過程,加#為全局臨時存儲過程。2.; number:是可選的整數(shù),用來對同名的過程分組,以便用一條 DROP PROCEDURE 語句即可將同組的過程一起除去。例如,名為 orders 的應(yīng)用程序使用的過程可以命名為 orderproc;1、orderproc;2 等。DROP PROCEDURE orderproc 語句將除去整個

4、組。如果名稱中包含定界標識符,則數(shù)字不應(yīng)包含在標識符中,只應(yīng)在 procedure_name 前后使用適當?shù)亩ń绶?#160;3.parameter: 存儲過程的參數(shù)??梢杂幸粋€或多個。用戶必須在執(zhí)行過程時提供每個所聲明參數(shù)的值(除非定義了該參數(shù)的默認值)。存儲過程最多可以有 2.100 個參數(shù)。 使用 符號作為第一個字符來指定參數(shù)名稱。參數(shù)名稱必須符合標識符的規(guī)則。每個過程的參數(shù)僅用于該過程本身;相同的參數(shù)名稱可以用在其它過程中。默認情況下,參數(shù)只能代替常量,而不能用于代替表名、列名或其它數(shù)據(jù)庫對象的名稱。有關(guān)更多信息,請參見 EXECUTE。 4.data_type:

5、參數(shù)的數(shù)據(jù)類型。所有數(shù)據(jù)類型(包括 text、ntext 和 image)均可以用作存儲過程的參數(shù)。不過,cursor 數(shù)據(jù)類型只能用于 OUTPUT 參數(shù)。如果指定的數(shù)據(jù)類型為 cursor,也必須同時指定 VARYING 和 OUTPUT 關(guān)鍵字。有關(guān) SQL Server 提供的數(shù)據(jù)類型及其語法的更多信息,請參見數(shù)據(jù)類型。 說明 對于可以是 cursor 數(shù)據(jù)類型的輸出參數(shù),沒有最大數(shù)目的限制。 5.VARYING: 指定作為輸出參數(shù)支持的結(jié)果集(由存儲過程動態(tài)構(gòu)造,內(nèi)容可以變化)。僅適用于游標參數(shù)。 6.default: 參數(shù)的默認值。

6、如果定義了默認值,不必指定該參數(shù)的值即可執(zhí)行過程。默認值必須是常量或 NULL。如果過程將對該參數(shù)使用 LIKE 關(guān)鍵字,那么默認值中可以包含通配符(%、_、 和 )。7.OUTPUT :表明參數(shù)是返回參數(shù)。該選項的值可以返回給 EXECUTE。使用 OUTPUT 參數(shù)可將信息返回給調(diào)用過程。Text、ntext 和 image 參數(shù)可用作 OUTPUT 參數(shù)。使用 OUTPUT 關(guān)鍵字的輸出參數(shù)可以是游標占位符。 8.RECOMPILE: 表明 SQL Server 不會緩存該過程的計劃,該過程將在運行時重新編譯。在使用非典型值或臨時值而不希望覆蓋緩存在內(nèi)存中的

7、執(zhí)行計劃時,請使用 RECOMPILE 選項。9.ENCRYPTION: 表示 SQL Server 加密 syscomments 表中包含 CREATE PROCEDURE 語句文本的條目。使用 ENCRYPTION 可防止將過程作為 SQL Server 復制的一部分發(fā)布。 說明 在升級過程中,SQL Server 利用存儲在 syscomments 中的加密注釋來重新創(chuàng)建加密過程。 10.FOR REPLICATION :指定不能在訂閱服務(wù)器上執(zhí)行為復制創(chuàng)建的存儲過程。.使用 FOR REPLICATION 選項創(chuàng)建的存儲過程可用作存儲過程篩選,且只能在復制

8、過程中執(zhí)行。本選項不能和 WITH RECOMPILE 選項一起使用。 11.AS :指定過程要執(zhí)行的操作。12.sql_statement :過程中要包含的任意數(shù)目和類型的 Transact-SQL 語句。但有一些限制。UserAccountUserIDUserNamePassWordRegisterTimeRegisterIP126                   6  

9、;                 2012-12-316185                   5             

10、      2013-01-015191                   1                   2013-01-011202   

11、0;               2                   2013-01-012213               

12、;    3                   2013-01-013224                   4       

13、0;           2013-01-014235                   5                   

14、;2013-01-015257                   7                   2013-01-017268         

15、60;         8                   2013-01-018NULLNULLNULLNULLNULL針對上面的表,我使用存儲過程對它做一些操作:1. 只返回單一記錄集的存儲過程 -創(chuàng)建名為GetUserAccount的存儲過程-create Procedure GetUserAcco

16、untasselect * from UserAccountgo-執(zhí)行上面的存儲過程-exec GetUserAccount 結(jié)果:相當于運行 select * from UserAccount 這行代碼,結(jié)果為整個表的數(shù)據(jù)。2.沒有輸入輸出的存儲過程 -創(chuàng)建名為GetUserAccount的存儲過程-create Procedure inUserAccountasinsert into UserAccount (UserName,PassWord,RegisterTime,RegisterIP) values(9,9,'2013-01-02&#

17、39;,9)go-執(zhí)行上面的存儲過程-exec inUserAccount 結(jié)果:相當于運行 insert into UserAccount (UserName,PassWord,RegisterTime,RegisterIP) values(9,9,'2013-01-02',9) 這行代碼。3.有返回值的存儲過程 -創(chuàng)建名為GetUserAccount的存儲過程-create Procedure inUserAccountReasinsert into UserAccount (UserName,PassW

18、ord,RegisterTime,RegisterIP) values(10,10,'2013-01-02',10)return rowcountgo-執(zhí)行上面的存儲過程-exec inUserAccountRe 解釋:這里的rowcount為執(zhí)行存儲過程影響的行數(shù),執(zhí)行的結(jié)果是不僅插入了一條數(shù)據(jù),還返回了一個值即 return value =1  ,這個可以在程序中獲取,稍后在c#調(diào)用存儲過程中會有說到。4.有輸入?yún)?shù)和輸出參數(shù)的存儲過程 -創(chuàng)建名為GetUserAccount的存儲過程-create Procedure GetUserAccou

19、ntReUserName nchar(20),UserID int outputasif(UserName>5)select UserID=COUNT(*) from UserAccount where UserID>25elseset UserID=1000go-執(zhí)行上面的存儲過程-exec GetUserAccountRe '7',null 解釋:UserName為輸入?yún)?shù),UserID為輸出參數(shù)。 運行結(jié)果為userID為COOUT(*)即 =1。5. 同時具有返回值、輸入?yún)?shù)、輸出參數(shù)的存儲過程 -創(chuàng)建名為GetUserAcco

20、unt的存儲過程-create Procedure GetUserAccountRe1UserName nchar(20),UserID int outputasif(UserName>5)select UserID=COUNT(*) from UserAccount where UserID>25elseset UserID=1000return rowcountgo-執(zhí)行上面的存儲過程-exec GetUserAccountRe1 '7',null 結(jié)果:userID為COOUT(*)即 =1,Retun Value=1。6.同時返回參數(shù)和記錄集的存儲

21、過程 -創(chuàng)建名為GetUserAccount的存儲過程-create Procedure GetUserAccountRe2UserName nchar(20),UserID int outputasif(UserName>5)select UserID=COUNT(*) from UserAccount where UserID>25elseset UserID=1000select * from UserAccountreturn rowcountgo-執(zhí)行上面的存儲過程-exec GetUserAccountRe2 '7',null 結(jié)果:

22、返回執(zhí)行 select * from UserAccount 這句代碼的結(jié)果集,同時userID為COOUT(*)即 =1,Retun Value=9。 7.返回多個記錄集的存儲過程 -創(chuàng)建名為GetUserAccount的存儲過程-create Procedure GetUserAccountRe3asselect * from UserAccountselect * from UserAccount where UserID>5go-執(zhí)行上面的存儲過程-exec GetUserAccountRe3結(jié)果:返回兩個結(jié)果集,一個為

23、 select * from UserAccount,另一個為 select * from UserAccount where UserID>5 。public partial class ProcedureTest : System.Web.UI.Page public static string conn = ConfigurationManager.ConnectionStrings"StuRelationDBConnectionString".Connectio

24、nString; public SqlConnection con = new SqlConnection(conn); protected void Page_Load(object sender, EventArgs e) runGetUserAccountRe3(); /只返回單一記錄集的存儲過程GetUserAccount public void runGetUserAccount() SqlDataAdapter dp = new SqlDataAdapter(common("GetUserAccount"); DataSet ds = new DataSet()

25、; / 填充dataset dp.Fill(ds); rpt.DataSource = ds; rpt.DataBind(); /沒有輸入輸出的存儲過程inUserAccount public void runinUserAccount() con.Open(); Label1.Text = common("inUserAccount").ExecuteNonQuery().ToString(); con.Close(); /有返回值的存儲過程inUserAccountRe public void runinUserAccountRe() / 創(chuàng)建參數(shù) SqlCommand

26、 cmd = common("inUserAccountRe"); IDataParameter parameters = new SqlParameter("rval", SqlDbType.Int,4) ; / 將參數(shù)類型設(shè)置為 返回值類型 parameters0.Direction = ParameterDirection.ReturnValue; / 添加參數(shù) cmd.Parameters.Add(parameters0); con.Open(); / 執(zhí)行存儲過程并返回影響的行數(shù) Label1.Text = cmd.ExecuteNonQuer

27、y().ToString(); con.Close(); / 顯示影響的行數(shù)和返回值 Label1.Text += "-" + parameters0.Value.ToString(); /有輸入?yún)?shù)和輸出參數(shù)的存儲過程 public void runGetUserAccountRe() SqlCommand cmd = common("GetUserAccountRe"); / 創(chuàng)建參數(shù) IDataParameter parameters = new SqlParameter("UserName", SqlDbType.NChar,

28、20) , new SqlParameter("UserID", SqlDbType.Int) , ; / 設(shè)置參數(shù)類型 parameters0.Value = "7" parameters1.Direction = ParameterDirection.Output; / 設(shè)置為輸出參數(shù) / 添加參數(shù) cmd.Parameters.Add(parameters0); cmd.Parameters.Add(parameters1); con.Open(); / 執(zhí)行存儲過程并返回影響的行數(shù) Label1.Text = cmd.ExecuteNonQuer

29、y().ToString(); con.Close(); / 顯示影響的行數(shù)和輸出參數(shù) Label1.Text += "-" + parameters1.Value.ToString(); /同時具有返回值、輸入?yún)?shù)、輸出參數(shù)的存儲過程GetUserAccountRe1 public void runGetUserAccountRe1() SqlCommand cmd = common("GetUserAccountRe1"); / 創(chuàng)建參數(shù) IDataParameter parameters = new SqlParameter("UserN

30、ame", SqlDbType.NChar,20) , new SqlParameter("UserID", SqlDbType.Int) , new SqlParameter("rval", SqlDbType.Int,4) ; / 設(shè)置參數(shù)類型 parameters0.Value = "7" parameters1.Direction = ParameterDirection.Output; / 設(shè)置為輸出參數(shù) parameters2.Direction = ParameterDirection.ReturnValue;

31、 /設(shè)置為返回值 / 添加參數(shù) cmd.Parameters.Add(parameters0); cmd.Parameters.Add(parameters1); cmd.Parameters.Add(parameters2); con.Open(); / 執(zhí)行存儲過程并返回影響的行數(shù) Label1.Text = cmd.ExecuteNonQuery().ToString(); con.Close(); / 顯示影響的行數(shù)和輸出參數(shù) Label1.Text += "-輸出參數(shù)為:" + parameters1.Value.ToString(); Label1.Text +

32、= "-返回值為:" + parameters2.Value.ToString(); /同時返回參數(shù)和記錄集的存儲過程GetUserAccountRe2 public void runGetUserAccountRe2() SqlCommand cmd = common("GetUserAccountRe2"); / 創(chuàng)建參數(shù) IDataParameter parameters = new SqlParameter("UserName", SqlDbType.NChar,20) , new SqlParameter("Use

33、rID", SqlDbType.Int) , new SqlParameter("rval", SqlDbType.Int,4) ; / 設(shè)置參數(shù)類型 parameters0.Value = "7" parameters1.Direction = ParameterDirection.Output; / 設(shè)置為輸出參數(shù) parameters2.Direction = ParameterDirection.ReturnValue; /設(shè)置為返回值 / 添加參數(shù) cmd.Parameters.Add(parameters0); cmd.Parame

34、ters.Add(parameters1); cmd.Parameters.Add(parameters2); con.Open(); / 執(zhí)行存儲過程并返回影響的行數(shù) Label1.Text = cmd.ExecuteNonQuery().ToString(); DataSet ds = new DataSet(); SqlDataAdapter dt = new SqlDataAdapter(cmd); dt.Fill(ds); rpt.DataSource = ds; rpt.DataBind(); con.Close(); / 顯示影響的行數(shù)和輸出參數(shù) Label1.Text += &

35、quot;-輸出參數(shù)為:" + parameters1.Value.ToString(); Label1.Text += "-返回值為:" + parameters2.Value.ToString(); /返回多個記錄集的存儲過程 public void runGetUserAccountRe3() DataSet ds = new DataSet(); SqlDataAdapter dt = new SqlDataAdapter(common("GetUserAccountRe3"); dt.Fill(ds); rpt1.DataSource

36、 = ds.Tables0.DefaultView; rpt1.DataBind(); rpt2.DataSource = ds.Tables1.DefaultView; rpt2.DataBind(); public SqlCommand common(string proName) SqlCommand cmd = new SqlCommand(); / 設(shè)置sql連接 cmd.Connection = con; / 如果執(zhí)行語句 cmd.CommandText = proName; / 指定執(zhí)行語句為存儲過程 cmd.CommandType = CommandType.StoredPro

37、cedure; return cmd; USE Temp20151220GO/* Object: StoredProcedure dbo.spLB_ExportQuote Script Date: 12/29/2015 14:05:16 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO ALTER procedure dbo.spLB_ExportQuote ( FItemTypeID int, -機型ID CurrencyID int='1' -貨幣ID ) as BEGIN -declare FItemTypeID int, -

38、機型ID - CurrencyID int='1' -貨幣ID - select FItemTypeID=176847-,CurrencyID=1set nocount on /* by lhg 2014.3.27 導出配置BOM和機型與額外配件的報價,無價格不導出 spLB_ExportQuote 274 */ -根據(jù)貨幣代碼,取匯率體系里為報價單匯率的當前匯率 -declare Rate decimal(18,6) -select Rate=dbo.fnLB_GetCurrencyRateQuote(CurrencyID) - SELECT '1.Standard

39、Configuration' model,T5.FName,t6.F_128 en,t2.Vision,isnull(t8.Vision,1) v2,t3.Pk,t3.RevisePk,t3.RowIndex,t3.FlagID,t3.ParentFlagID,t3.ParentPath,t3.GroupName,case when len(T3.parentpath)>0 then RIGHT(T3.parentpath,LEN(T3.parentpath) else T3.parentpath end +'.'+T3.GroupName FGroupName,

40、t3.isreportshow 類型,t4.Pk 物料表PK,t4.FGroupName 路徑名稱,t4.FChooseCode 選擇,T6.RkDescripen 英文描述,t4.SelectModelKey 中文描述,t4.ParentPath 物料路徑,t8.Price 價格,t4.Qty,(SELECT dbo.QIAO_CNTWOW('.',t4.ParentPath) CENG,t4.selecttype,t3.upgroup,T6.FNumber 整機料號,t4.FGroupName FNumber,T6.FName 物料名稱,NULL PriceINTO #te

41、mp FROM RkBom t1 LEFT JOIN RkBomRevise t2 on t2.BomPk =t1.Pk and t2.State='已審核' LEFT JOIN RkBomGroup t3 on t3.RevisePk =t2.Pk LEFT JOIN RkBomItem t4 on t4.GroupPk =t3.Pk LEFT JOIN RkItemType T5 ON T5.FITEMID=t1.FItemTypeIDLEFT JOIN t_ICItem T6 ON T6.FItemID=t5.TemplateItemIDLEFT JOIN RkPrdPr

42、ice T7 ON T6.FItemID=T7.FItemID LEFT join RkPrdPriceRevise T8 on T7.Pk=T8.PricePk AND T8.LastVision=1 and T8.State='已審核'WHERE t1.FItemTypeID=FItemTypeID -AND t3.ConfigType='標配'AND t4.selecttype='默認'AND (ISNULL(t4.FChooseCode,'')<>'' OR ISNULL(t4.FGroupNa

43、me,'')<>'')-ORDER BY t4.ParentPathUNION SELECT '2.Optional Accessories' model,T5.FName,t6.F_128 en,t2.Vision,isnull(t8.Vision,1),t3.Pk,t3.RevisePk,t3.RowIndex,t3.FlagID,t3.ParentFlagID,t3.ParentPath,t3.GroupName,case when len(T3.parentpath)>0 then RIGHT(T3.parentpath

44、,LEN(T3.parentpath) else T3.parentpath end +'.'+T3.GroupName FGroupName,1 類型,t4.Pk 物料表PK,'' 路徑名稱,t4.FChooseCode 選擇,null 英文描述,T6.RkDescripen 中文描述,t4.ParentPath 物料路徑,0 價格,t4.Qty,(SELECT dbo.QIAO_CNTWOW('.',t4.ParentPath) CENG,t4.selecttype,t3.upgroup,NULL 整機料號,T6.FNumber,T6.FNa

45、me,t8.Price-(SELECT FlagID FROM RkAccessoryGroup WHERE RevisePk=t2.Pk AND GroupName=-CASE WHEN CHARINDEX('.',t4.ParentPath,2)=0 THEN -SUBSTRING(t4.ParentPath,CHARINDEX('.',t4.ParentPath)+1,LEN(t4.ParentPath)-ELSE -SUBSTRING(t4.ParentPath,CHARINDEX('.',t4.ParentPath,1)+1,CHARI

46、NDEX('.',t4.ParentPath,2)-CHARINDEX('.',t4.ParentPath,1)-1) -END ) GROUP1ID,-(SELECT FlagID FROM RkAccessoryGroup WHERE RevisePk=t2.Pk AND GroupName=-CASE WHEN CHARINDEX('.',t4.ParentPath,2)=0 THEN NULL -WHEN CHARINDEX('.',t4.ParentPath,2)<>0 -and CHARINDEX('

47、;.',t4.ParentPath,CHARINDEX('.',t4.ParentPath,2)+1)=0 THEN -SUBSTRING(t4.ParentPath,CHARINDEX('.',t4.ParentPath,2)+1,LEN(t4.ParentPath)-CHARINDEX('.',t4.ParentPath,2)-1)-WHEN CHARINDEX('.',t4.ParentPath,2)<>0 -and CHARINDEX('.',t4.ParentPath,CHARINDE

48、X('.',t4.ParentPath,2)+1)<>0 THEN-SUBSTRING(t4.ParentPath,CHARINDEX('.',t4.ParentPath,2)+1,CHARINDEX('.',t4.ParentPath,CHARINDEX('.',t4.ParentPath,2)+1)-CHARINDEX('.',t4.ParentPath,2)-1) -END ) GROUP2ID,-(SELECT FlagID FROM RkAccessoryGroup WHERE ReviseP

49、k=t2.Pk AND GroupName=-CASE WHEN CHARINDEX('.',t4.ParentPath,CHARINDEX('.',t4.ParentPath,2)+1)<>0 -AND CHARINDEX('.',t4.ParentPath,CHARINDEX('.',t4.ParentPath,CHARINDEX('.',t4.ParentPath,2)+1)+1)=0 THEN -SUBSTRING(t4.ParentPath,CHARINDEX('.',t4.P

50、arentPath,CHARINDEX('.',t4.ParentPath,2)+1)+1,-LEN(t4.ParentPath)-CHARINDEX('.',t4.ParentPath,CHARINDEX('.',t4.ParentPath,2)+1)-1)- WHEN CHARINDEX('.',t4.ParentPath,CHARINDEX('.',t4.ParentPath,2)+1)<>0 -AND CHARINDEX('.',t4.ParentPath,CHARINDEX(&

51、#39;.',t4.ParentPath,CHARINDEX('.',t4.ParentPath,2)+1)+1)<>0 THEN -SUBSTRING(t4.ParentPath,CHARINDEX('.',t4.ParentPath,CHARINDEX('.',t4.ParentPath,2)+1),-CHARINDEX('.',t4.ParentPath,CHARINDEX('.',t4.ParentPath,CHARINDEX('.',t4.ParentPath,2)+1

52、)+1)-CHARINDEX('.',t4.ParentPath,CHARINDEX('.',t4.ParentPath,2)+1)-1)-END ) GROUP3IDFROM RkAccessory T1LEFT JOIN RkAccessoryRevise T2 ON T2.AccessoryPk=T1.Pk AND T2.State='已審核'LEFT JOIN RkAccessoryGroup T3 ON T3.RevisePk=T2.Pk LEFT JOIN RkAccessoryItem T4 ON T4.GROUPPK=T3.PKL

53、EFT JOIN RkItemType T5 ON T5.FITEMID=t1.FItemTypeIDLEFT JOIN t_ICItem T6 ON T6.FItemID=t4.FItemIDLEFT JOIN RkPrdPrice T7 ON T6.FItemID=T7.FItemID LEFT join RkPrdPriceRevise T8 on T7.Pk=T8.PricePk AND T8.LastVision=1 and T8.State='已審核'WHERE T1.FItemTypeID=FItemTypeID AND (ISNULL(t4.FChooseCod

54、e,'')<>'' OR ISNULL(t4.FGroupName,'')<>'')ALTER TABLE #TEMP ADD FinalID nvarchar(50),FID INT ,FCHOOSE NVARCHAR(100),GROUP1ID INT,GROUP1 NVARCHAR(50),GROUP2ID INT,GROUP2 NVARCHAR(50),GROUP3ID INT,GROUP3 NVARCHAR(50)DECLARE len INT SELECT len=LEN(MAX(CONVERT

55、( INT,flagid) FROM #tempUPDATE #TEMP SET FinalID=CASE WHEN parentflagid>0 THEN CONVERT(NVARCHAR(50),parentflagid)+REPLICATE('0',len-LEN(flagid)+CONVERT(NVARCHAR(50),flagid)ELSE CONVERT(NVARCHAR(50),flagid)+REPLICATE('0',len) END,FCHOOSE=選擇,GROUP1=CASE WHEN CHARINDEX('.',物料

56、路徑,2)=0 THEN 物料路徑ELSE LEFT(物料路徑,CHARINDEX('.',物料路徑,2)-1) END,GROUP2=CASE WHEN CHARINDEX('.',物料路徑,2)=0 THEN NULLELSE SUBSTRING(物料路徑,CHARINDEX('.',物料路徑,2),LEN(物料路徑) ENDUPDATE #TEMP SET GROUP3=CASE WHEN CHARINDEX('.',GROUP2,2)=0 THEN NULLELSE SUBSTRING(GROUP2,CHARINDEX(&

57、#39;.',GROUP2,2),LEN(GROUP2) END,GROUP2=CASE WHEN CHARINDEX('.',GROUP2,2)=0 THEN GROUP2ELSE LEFT(GROUP2,CHARINDEX('.',GROUP2,2)-1) ENDUPDATE #temp SET GROUP1ID=CASE WHEN T0.MODEL= '1.Standard Configuration' THEN (SELECT FlagID FROM RkBomGroup WHERE RevisePk=T0.REVISEPk AND GroupName=SUBSTRING(GROUP1,CHARINDEX('.',GROUP1)+1,LEN(GROUP1)-1)AND ParentFlagID=0) WHEN T0.MODEL= '2.Optional Accessories' THEN (SELE

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論