十多年的馬村網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整馬村建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“馬村網(wǎng)站設(shè)計(jì)”,“馬村網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
Execute Sql Task組件是一個(gè)非常有用的Control Flow Task,可以直接執(zhí)行SQL語句,例如,可以執(zhí)行數(shù)據(jù)更新命令(update,delete,insert),也可以執(zhí)行select查詢語句,返回結(jié)果集,結(jié)果集可以是一行,也可以是多行。
一,General 選項(xiàng)卡
1,返回結(jié)果集(Result Set)
None:表示不返回結(jié)果,在執(zhí)行Update,delete或insert命令時(shí),使用該選項(xiàng);
Single row:返回單行結(jié)果,可以在Result Set 選項(xiàng)卡中,將結(jié)果集返回到1個(gè)或多個(gè)變量中
Full result set:返回多行結(jié)果,結(jié)果集存儲在object對象中
2,組件執(zhí)行的SQL命令(SQL Statement)
ConnectionType:連接到數(shù)據(jù)源的鏈接類型,如果是OLEDB鏈接,選中OLE DB;
Connection:鏈接字符串
SQLSourceType:SQL數(shù)據(jù)源的類型,共有三個(gè)選項(xiàng):Direct Input,F(xiàn)ile Connection 和 Variable。Direct Input表示:直接輸入SQL命令;FileConnection表示:將SQL命令保存在.sql文件中;Variable表示:SQL命令保存在SSIS的變量中,如果Execute SQL Task執(zhí)行的SQL命令是動(dòng)態(tài)變化的,使用Variable選項(xiàng)較好;
SQLStatement:要執(zhí)行的SQL語句,根據(jù)SQLSourceType的不同,有三種不同的值:SQL語句,.sql文件路徑,或SSIS變量;
3,示例:SQLSourceType=Variable
二,Expressions選項(xiàng)卡
SSIS Package的屬性,既可以在General Tab中手動(dòng)配置,也可以在Expressions Tab中配置,將配置屬性的值保存到變量中,可以動(dòng)態(tài)控制包的執(zhí)行,
示例,將SqlStatementSource的值存儲在變量中,結(jié)果和SqlSourceType=Variable是一樣的,只不過實(shí)現(xiàn)方式不同,并且SSIS在執(zhí)行過程中,使用Expressions的屬性覆蓋General中配置的屬性值。
三,Result Set選項(xiàng)卡
如果在General選項(xiàng)卡中,將Result Set設(shè)置為Singel Row,可以將結(jié)果值存儲在變量中
四,Parameter Mapping 選項(xiàng)卡
如果sql命令在執(zhí)行的過程中需要傳遞參數(shù),可以在Parameter Mapping 選項(xiàng)卡中進(jìn)行配置。如果使用的OLE DB 鏈接,需要使用 ?代表第一個(gè)參數(shù),并且在Parameter Mapping 中將parameter name設(shè)置為參數(shù)的序號,第一個(gè)? 的序號是0,即序號從0依次遞增
五,返回受影響數(shù)據(jù)的行數(shù)
ExecValueVariable 屬性是Task的標(biāo)準(zhǔn)屬性。有些Task在執(zhí)行完成后,會返回輸出結(jié)果,為了獲取Task的輸出結(jié)果,我們可以定義一個(gè)變量,存儲輸出結(jié)果。Task的ExecValueVariable屬性就是用來指定存儲Task輸出結(jié)果的變量名。默認(rèn)屬性值是none,表示task的輸出結(jié)果不會被存儲。
Execute SQL Task 返回被更新的數(shù)據(jù)的行數(shù),我們可以為ExecValueVariable屬性指定一個(gè)變量,用來接收Task的輸出值(Execution value),在下游組件中可以引用該變量,獲取 Execute SQL Task 更新的數(shù)據(jù)行數(shù)。
Returns the number of rows affected by the SQL statement(s).The ExecValue is using the @@ROWCOUNT to assign the value of the variable and absent a @@ROWCOUNT the value returned is -1.
示例 Execute Sql Task的ExecValueVariable 用法
1,設(shè)計(jì)Package的Control Flow
Execute Sql Task的屬性:ExecValueVariable的值是變量varCount,該Task執(zhí)行的SQL語句如下:
insert into dbo.delay_testVALUES(1),(2),(3)insert into dbo.delay_testVALUES(2),(3)
Task:insert Data執(zhí)行的SQL語句是,傳入的參數(shù)是User::varCount
insert into dbo.dt_testvalues(?)
2,查看結(jié)果,第一個(gè)Task返回的結(jié)果是varCount是2,這個(gè)結(jié)果實(shí)際上是@@RowCount,SSIS在執(zhí)行語句之后,將@@RowCount賦值到Execute SQL Task 屬性ExecValueVariable指定的變量中。