SSMS:如何从Excel导入(复制/粘贴)数据

如何从excel中复制/粘贴以下定界数据(默认情况下,使用制表符定界):

declare @t_values   nvarchar(max)   =                   

N'

NULL 490366 NULL NULL

NULL 490400 NULL NULL

NULL 490402 NULL NULL

483061 490404 10 abc1

NULL 490406 NULL NULL

9766167 490408 3 abc2'

;

到我的临时表:

CREATE TABLE #insertTable

( transaction_id int

,user_id int

,purchase_price decimal(8,2)

,mess varchar(8)

);

注意!不使用OPENROWSET

  1. 询问
  2. 程序
  3. SNIPPET(在此处获取creae片段的快速方法)

  1. 询问

  2. SNIPPET(在此处获取creae片段的快速方法)

如果您使用的是旧版SQL

Server(数据库兼容性设置低于130),则需要单独STRING_SPLIT使用。我建议以下解决方案。

回答:

请尝试以下操作:

-- NB! Script do NOT write any ifo to any table

-- to perform insert please copy/paste script output and execute

declare @tbl_name nvarchar(128) = '#insertTable'; -- Destination Table Name + [(column names)]

declare @dlm nvarchar(128) = char(9); -- Delimiter: HT = char(9) = HorizontalTab

declare @tbl nvarchar(max) = -- Paste Table Values here (from excel for instance)

N'NULL 490366 NULL NULL

NULL 490400 NULL NULL

NULL 490402 NULL NULL

483061 490404 10 abc1

NULL 490406 NULL NULL

9766167 490408 3 abc2'

;

select N'insert into '

+ @tbl_name -- table name

+ ' VALUES('

+ replace -- replace 'NULL' by NULL

( ''''

+ replace -- surround values by quotes 'value1','value2'...

( value

, @dlm -- Delimiter: HT = char(9) = HorizontalTab

, ''','''

)

+ ''''

, '''NULL'''

, 'NULL'

)

+ ');' as insertquery

--into #t

from fn_split_string -- insert Line per Row into table

( replace -- replace CR + LF by LF (CR - Carriage Return, LF - Line Feed)

( @tbl -- Paste Table Values here (from excel for instance)

, char(13)+char(10) -- CR + LF

, char(10) -- LF

)

,char(10)

)

where len(value)>0 -- skip empty rows

以上是 SSMS:如何从Excel导入(复制/粘贴)数据 的全部内容, 来源链接: utcz.com/qa/406234.html

回到顶部