3 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
您將需要發(fā)布源表和目標(biāo)表的表定義,以便我們找出問(wèn)題所在,但最重要的是,源表中的一列大于目標(biāo)列??赡苁且阅恢赖姆绞礁母袷健D谑褂玫臄?shù)據(jù)庫(kù)模型對(duì)于弄清這一點(diǎn)也很重要。

TA貢獻(xiàn)2016條經(jīng)驗(yàn) 獲得超9個(gè)贊
正如其他人已經(jīng)說(shuō)過(guò)的那樣,源表中的列數(shù)據(jù)類(lèi)型之一比目標(biāo)列大。
一個(gè)簡(jiǎn)單的解決方案是簡(jiǎn)單地關(guān)閉警告并允許截?cái)喟l(fā)生。因此,如果您收到此錯(cuò)誤,但是您確定將舊數(shù)據(jù)庫(kù)/表中的數(shù)據(jù)截?cái)啵ò幢壤s放)是可以接受的,則只需執(zhí)行以下操作即可;
SET ANSI_WARNINGS OFF;
-- Your insert TSQL here.
SET ANSI_WARNINGS ON;
如上所述,請(qǐng)始終記住隨后再次打開(kāi)警告。我希望這有幫助。

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊
問(wèn)題很簡(jiǎn)單:源查詢中的一個(gè)或多個(gè)列包含的數(shù)據(jù)超出了其目標(biāo)列的長(zhǎng)度。一個(gè)簡(jiǎn)單的解決方案是采用源查詢并Max(Len( source col ))在每一列上執(zhí)行。即
Select Max(Len(TextCol1))
, Max(Len(TextCol2))
, Max(Len(TextCol3))
, ...
From ...
然后將這些長(zhǎng)度與目標(biāo)表中的數(shù)據(jù)類(lèi)型長(zhǎng)度進(jìn)行比較。至少超過(guò)其目標(biāo)列的長(zhǎng)度。
如果您絕對(duì)肯定不會(huì)出現(xiàn)這種情況,并且不介意不是這種情況,那么另一種解決方案是將源查詢列強(qiáng)制轉(zhuǎn)換為它們的目標(biāo)長(zhǎng)度(這將截?cái)嗳魏芜^(guò)長(zhǎng)的數(shù)據(jù)):
Select Cast(TextCol1 As varchar(...))
, Cast(TextCol2 As varchar(...))
, Cast(TextCol3 As varchar(...))
, ...
From ...
- 3 回答
- 0 關(guān)注
- 3332 瀏覽