1

批量插入时如何修剪空白空间?我有如下示例数据:

| |100  |4000009|1000 |01    |                                   |201004471|          |28.01.1972|10.04.2012|300485|ABC 307.07B            |01   |                         |          |SSC |SSC  |CA02      |00   |      |0       |SESC    |COM  |01      |01   |00.00.0000|00.00.0000|FR1  |
4

3 回答 3

6

它可能不是最优雅的解决方案,但您可以批量插入临时表,然后将临时表中的修剪数据插入目标表。

CREATE TABLE #temp
(
    [field1] [varchar](20) NOT NULL,
    [field2] [varchar](100) NOT NULL
) 

BULK
INSERT #temp
FROM 'C:\Temp\data.txt' 
WITH
(
FIELDTERMINATOR = '|',
ROWTERMINATOR = '\n',
FIRSTROW = 1
)
GO

Insert Into MyDatabase..TargetTable ([field1], [field2])
Select RTRIM(LTRIM([field1])), RTRIM(LTRIM([field2])) From #temp

Drop table #temp
于 2012-12-05T21:47:05.683 回答
1

如果要插入字符串值,这种方法可能很有用

    REPLACE('Original String', ' ', '')

否则,您可以使用动态 SQL,将所有插入内容放入字符串中,修剪并使用 sp_executesql 执行

    DECLARE @szSQL NVARCHAR(MAX)
    SET @szSQL = 'INSERT INTO YourTable(YourCol1, YourCol2, YourCol3)
    VALUES(YourVal1, YourVal2, YourVal3)'
    SET @szSQL REPLACE(@szSQL, ' ', '')
    EXEC sp_executesql @szSQL
于 2012-10-29T10:31:40.153 回答
0

你可以这样做:

  1. 将数据插入到您的表中
  2. 删除空格UPDATE yourTable SET FirstName = LTRIM(RTRIM(FirstName))
于 2017-10-09T12:09:11.040 回答