
参考如下:
导出到excel
EXEC masterxp_cmdshell 'bcp SettleDBdboshanghu out c:\temp1xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""'
/ 导入Excel
SELECT
FROM OpenDataSource( 'MicrosoftJetOLEDB40',
'Data Source="c:\testxls";User ID=Admin;Password=;Extended properties=Excel 50')xactions
/动态文件名
declare @fn varchar(20),@s varchar(1000)
set @fn = 'c:\testxls'
set @s ='''MicrosoftJetOLEDB40'',
''Data Source="'+@fn+'";User ID=Admin;Password=;Extended properties=Excel 50'''
set @s = 'SELECT FROM OpenDataSource ('+@s+')sheet1$'
exec(@s)
/
SELECT cast(cast(科目编号 as numeric(10,2)) as nvarchar(255))+' ' 转换后的别名
FROM OpenDataSource( 'MicrosoftJetOLEDB40',
'Data Source="c:\testxls";User ID=Admin;Password=;Extended properties=Excel 50')xactions
/ EXCEL导到远程SQL
insert OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
)库名dbo表名 (列名1,列名2)
SELECT 列名1,列名2
FROM OpenDataSource( 'MicrosoftJetOLEDB40',
'Data Source="c:\testxls";User ID=Admin;Password=;Extended properties=Excel 50')xactions
/ 导入文本文件
EXEC masterxp_cmdshell 'bcp dbnametablename in c:\DTtxt -c -Sservername -Usa -Ppassword'
/ 导出文本文件
EXEC masterxp_cmdshell 'bcp dbnametablename out c:\DTtxt -c -Sservername -Usa -Ppassword'
或
EXEC masterxp_cmdshell 'bcp "Select from dbnametablename" queryout c:\DTtxt -c -Sservername -Usa -Ppassword'
导出到TXT文本,用逗号分开
exec masterxp_cmdshell 'bcp "库名表名" out "d:\tttxt" -c -t ,-U sa -P password'
BULK INSERT 库名表名
FROM 'c:\testtxt'
WITH (
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
)
--/ dBase IV文件
select from
OPENROWSET('MICROSOFTJETOLEDB40'
,'dBase IV;HDR=NO;IMEX=2;DATABASE=C:\','select from [客户资料4dbf]')
--/
--/ dBase III文件
select from
OPENROWSET('MICROSOFTJETOLEDB40'
,'dBase III;HDR=NO;IMEX=2;DATABASE=C:\','select from [客户资料3dbf]')
--/
--/ FoxPro 数据库
select from openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\',
'select from [aaDBF]')
--/
/导入DBF文件/
select from openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;
SourceDB=e:\VFP98\data;
SourceType=DBF',
'select from customer where country != "USA" order by country')
go
/ 导出到DBF /
如果要导出数据到已经生成结构(即现存的)FOXPRO表中,可以直接用下面的SQL语句
insert into openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\',
'select from [aaDBF]')
select from 表
说明:
SourceDB=c:\ 指定foxpro表所在的文件夹
aaDBF 指定foxpro表的文件名
/导出到Access/
insert into openrowset('MicrosoftJetOLEDB40',
'x:\Amdb';'admin';'',A表) select from 数据库名B表
/导入Access/
insert into B表 selet from openrowset('MicrosoftJetOLEDB40',
'x:\Amdb';'admin';'',A表)
文件名为参数
declare @fname varchar(20)
set @fname = 'd:\testmdb'
exec('SELECT a FROM opendatasource(''MicrosoftJetOLEDB40'',
'''+@fname+''';''admin'';'''', topics) as a ')
SELECT
FROM OpenDataSource( 'MicrosoftJetOLEDB40',
'Data Source="f:\northwindmdb";Jet OLEDB:Database Password=123;User ID=Admin;Password=;')产品
导入 xml 文件
DECLARE @idoc int
DECLARE @doc varchar(1000)
--sample XML document
SET @doc ='
<root>
<Customer cid= "C1" name="Janine" city="Issaquah">
<Order oid="O1" date="1/20/1996" amount="35" />
<Order oid="O2" date="4/30/1997" amount="134">Customer was very satisfied
</Order>
</Customer>
<Customer cid="C2" name="Ursula" city="Oelde" >
<Order oid="O3" date="7/14/1999" amount="100" note="Wrap it blue
white red">
<Urgency>Important</Urgency>
Happy Customer
</Order>
<Order oid="O4" date="1/20/1996" amount="10000"/>
</Customer>
</root>
'
-- Create an internal representation of the XML document
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
-- Execute a SELECT statement using OPENXML rowset provider
SELECT
FROM OPENXML (@idoc, '/root/Customer/Order', 1)
WITH (oid char(5),
amount float,
comment ntext 'text()')
EXEC sp_xml_removedocument @idoc
declare @i int
set @i=0
while(@i<1000)
begin
insert into a(url) values('XXXXXX_'+cast(@i as varchar))
set @i=@i+1
end
常见的insert语句,向数据库中,一条语句只能插入一条数据:
insert
into
persons
(id_p,
lastname
,
firstname,
city
)
values(204,'haha'
,
'deng'
,
'shenzhen');
(如上,仅插入了一条记录)
怎样一次insert插入多条记录呢?
使用示例:
insert
into
persons
(id_p,
lastname
,
firstname,
city
)
values
(200,'haha'
,
'deng'
,
'shenzhen'),
(201,'haha2'
,
'deng'
,
'gd'),
(202,'haha3'
,
'deng'
,
'beijing');
这样就批量插入数据了,
遵循这样的语法,就可以批量插入数据了。
执行成功,截图:
据说,在程序开发中,一次插入多条数据,比逐次一条一条的插入数据,效率高很多
所以在程序开发的时候,使用此批量插入,也是比较不错的。
此语句在mysql
5,
postgresql
93执行通过。
<%
textarea=Request("textarea")'获取输入框的内容
If inStr(textarea,chr(13)&chr(10))>0 then'判断是否有换行符
textarea=Split(textarea,chr(13)&chr(10), -1, 1)'用换行符把内容分割成数组
For i=0 to UBound(textarea)'循环数组
ConnExecute "Insert Into [表名] (username,shuju,password) Values ('username值','"&textarea(i)&"','password值')" '写入数据库
Next
End If
%>
代码如下:
--创建测试表
CREATE TABLE [Identity](
Id INT IDENTITY(1,2) NOT NULL PRIMARY KEY,--种子的起始值1,步长2
Number VARCHAR(20) UNIQUE NOT NULL,
Name VARCHAR(20) NOT NULL,
Password VARCHAR(20) DEFAULT(123),
Description VARCHAR(40) NULL
)
--插入记录
INSERT INTO [Identity](Number,Name,Description) VALUES('001','1st','Id=1,因为起始值1')
INSERT INTO [Identity](Number,Name,Description) VALUES('002','2nd','Id=3,因为起始值1,步长2')
INSERT INTO [Identity](Number,Name,Description) VALUES('003','3rd','Id=5,由于字符长度超长,报错插入失败,造成此Id产生后被放弃')
INSERT INTO [Identity](Number,Name,Description) VALUES('004','4th','Id=7 not 5,因为第三条记录插入失败')
--检索记录,查看结果
SELECT FROM [Identity]
数据库是没有真正的批量新增记录。因为每新增一个条记录数据库系统要进行校验,比如触发器。
可以用多条insert语句,类似批量添加多条记录。
比如 :
insert into table values(var1);
insert into table values(var2);
insert into table values(varN);
不过,实质上数据库还是逐条添加的,并不是同时添加所以尽量。
这个在sqlserver里面不好做,要用到sql语言中的变量并且sql语音没有for不过有while,不过一般数据都不会这样批量输入,毕竟不是每条数据都之间都存在内在的联系。如果你真的想用for语句进行录入的话,你就用visual studio连接你的数据库用c#代码来完成这个活。
DECLARE @id INT,@username NVARCHAR(50),@Pwd NVARCHAR(50)
SET @id=0
SET @username ='kk'
SET @Pwd='12345'
WHILE @i<10000 --10000为你要执行插入的次数
BEGIN
INSERT INTO xx ( id, username,Pwd ) --xx为表名
VALUES ( @id, @username,@Pwd )
SET @i=@i+1
END
以上就是关于sql server查询分析器,用sql语句往表中批量插入数据怎么做,看图.全部的内容,包括:sql server查询分析器,用sql语句往表中批量插入数据怎么做,看图.、求一sql批量插入数据库的语句、怎么批量插入mysql数据库(1000条)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)