2013-07-09 36 views
0

我的列分隔符是一個垂直條「|」 如何讓SQL在看到「\ |」時不創建新列SQL Server導入/導出:如何創建列分隔符EXCEPTION

我的文本文件由豎線「|」分隔。但是有時垂直條會出現在名稱/值中,並且SQL會將其分割爲單獨的列。爲了解決這個問題,數據的所有者在每個垂直條的前面插入一個不是分隔符的\。

什麼是告訴SQL Server在看到「\ |」時不在單獨列中分割字段的最無縫方式?而不是一個正常的豎條。我可以使用文本限定符/其他一些簡單的方法來做到這一點?

+0

您應該使用「文本標識符」而不是該轉義字符。如果你有'''作爲文本標識符,並且將列中的內容包裹在它們中('「askljdalsjkd | klj」| kdkd | kdslsd'),那麼你不會有問題 – Lamak

+1

你不能使用常規格式如CSV? –

回答

0

就我所知,沒有一種好的方法,SQL Server允許使用文本限定符,但不能使用分隔符轉義。

除非分隔符周圍總是有空格,在這種情況下,您可以使用「|」(空格管道空格)作爲分隔符來排除slashpipe。

如果無法以適當的格式獲取數據,則可以替換「/ |」的出現次數與一個非標準的字符或字符串,通過一個簡單的腳本或SSIS。

您也可以按原樣導入文件,並在導入後調整它(如果使用SSIS,則在導入過程中)。根據有多少錯誤管道,這可能是不合理的。