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
:
- 询问
- 程序
- SNIPPET(在此处获取creae片段的快速方法)
:
询问
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