2009-07-16 36 views
8

Tôi đang sử dụng một lệnh OLE DB trong SSIS mà lệnh SQL như sau:thông số Bí danh trong SSIS

UPDATE DBO.CLIENT 
SET 
    TimeZoneID = ?, 
    DaylightSavingTime = ?, 
    ModifiedBy = ?, 
    MicrosPropertyID = ?, 
    IsOffline = ?, 
    GlobalReporting_MaskPatronNumberType = ?, 
    GlobalReporting_PatronNumberReadableCharacters = ?, 
    GlobalReporting_MaskPrimaryCardType = ?, 
    GlobalReporting_PrimaryCardReadableCharacters = ?, 
    BICAddedDateTime = ?, 
    BICUpdatedDateTime = ?, 
    IsDBInDailyBoardRate = ? 
WHERE 
    ClientID = ? 

Khi tôi cố gắng thực hiện ánh xạ cột, các thông số hiển thị như PARAM_0, PARAM_1, PARAM_2, PARAM_3, v.v. Có cách nào để hiển thị chúng dưới dạng tên cột không?

Trả lời

4

tôi thấy rằng SSIS sẽ đọc cột tên từ một thủ tục được lưu trữ thay vì lệnh SQL cho lệnh OLE DB!

Tuy nhiên, nó sẽ không bỏ qua @ cho tên thông số và do đó kết hợp thông minh không hoạt động đối với CustomerId so với @CustomerId.

+1 cho mọi người sử dụng Procs được lưu trữ. :-)

3

Bạn có thể đổi tên chúng bằng tay trong Input/Output Properties (người đó cư trú dưới "Cột bên ngoài"), nhưng họ sẽ luôn luôn nhanh chóng để PARAM_0, PARAM_1 ...

+0

@Eric: SSIS 2008 không cho phép tôi thay đổi tên. –

+0

@Tapori: Bạn nói đúng, tôi đã suy nghĩ về nguồn OLEDB. Đã cập nhật để phản ánh tác vụ Lệnh OLEDB. – Eric

+0

@Eric: Nếu bạn sử dụng một thủ tục được lưu trữ thay vì lệnh SQL, SSIS nhận ra các tham số và kéo chúng theo tên thay vì PARAM_0, 1, v.v. Tôi sẽ thử những gì bạn đề xuất ngay lập tức. –