開發人員需要每日Import大量資料,想改用SSIS產生package排程執行,但有一個流程目前是用EXCEL完成的,第一個欄位要自訂格式,年月加上流水號(例如200805000001),希望我在SSIS找到解決方案,當我聽到時第一個想法是透過T-SQL User-Defined Function與default contraint來完成這個需求,果然在google上找到類似的寫法,以下是我改寫後的demo code
--STEP1.Create test database
Use master
GO
CREATE DATABASE TESTDB
GO
--STEP2.Create T-SQL User-Defined Function
-- 在Code裡面已經指定要從這個資料表dbo.autoIDTable取得最大的流水號
USE TESTDB
GO
CREATE FUNCTION GetNewAutoID
(
-- Add the parameters for the function here
--@p1 char(4)
)
RETURNS char(12)
AS
BEGIN
-- Declare the return variable here
DECLARE @ResultVar Char(12)
Declare @MaxValue int
Set @MaxValue=0
Select @MaxValue=Cast(Right(autoid,6) as int) from dbo.autoIDTable
Set @MaxValue=@MaxValue +1
Set @ResultVar=LEFT(cast(convert(varchar , GETDATE(), 112) as varchar ),6) + Right(('00000'+Ltrim(str(@maxValue))),6)
-- Return the result of the function
RETURN @ResultVar
END
GO
--STEP3.Create dbo.autoIDTable Table use default constraint
Create table dbo.autoIDTable
(
autoid char(12) default dbo.GetNewAutoID(),
Data varchar(50)
);
-- STEP4.Try to select fucntion dbo.GetNewAutoID()
SELECT dbo.GetNewAutoID()
-- STEP5.Insert test data
insert into dbo.autoIDTable(Data) values('haha')
insert into dbo.autoIDTable(Data) values('wawa')
insert into dbo.autoIDTable(Data) values('gaga')
-- STEP6.select dbo.autoIDTable
select * from dbo.autoIDTable
-- STEP7.drop test database
USE master
GO
DROP DATABASE TESTDB
GO
Brad Chen's Developer Blog Azure Database Data science Machine Learning Cloud
訂閱:
張貼留言 (Atom)
SQL Server Planning, Pricing and License
Server-CALs授權模式 1.需購買的量應該是所有終端用戶的電腦 例如:一台Data warehouse主機 與 一台Web報表主機,但公司有50人或電腦會連進Web報表主機開啟報表,則應該每一台用戶端電腦都需要有CALs授權,Data warehouse主機購買Ser...
-
1.安裝了Oracle Client,就可以用Oracle Net Manager工具來設定TNS連線設定(Tnsnames.ora) Oracle Client 18.3 Installation 安裝Oracle Client 18.3 2.啟動Oracle Ne...
-
SQL Server Integration Service可以透過內建的OLE DB Source連線到Oracle匯出資料,但無法寫入資料到Oracle,Attunity公司針對這個功能提供了SSIS的連結Source,並且聽說資料傳送效率非常好,本人沒有測試過效能,有興趣的...
-
1.下載 Oracle Database 18c (18.3) https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle18c-windows-180000-5066774.ht...
沒有留言:
張貼留言