用SQL查询分析器操纵Excel及导入导出数据
用SQL查询分析器操纵Excel及导入导出数据
http://www.delphibbs.com/keylife/iblog_show.asp?xid=32983
SQL SERVER 和EXCEL的数据导入导出
通常的方法是使用图形界面的dts工具,但发觉有些使用命令行界面的方式更简单
1、在SQL SERVER里查询Excel数据:
-- ======================================================
SELECT *
from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
-------------------------------------------------------------------------------------
2、将Excel的数据导入SQL server :
-- ======================================================
SELECT * into newtable
from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
-------------------------------------------------------------------------------------
结论: 这两个功能都使用了openDatasource函数来返回一个专用的数据库服务器,作为4部分名称的第一部分。
OPENDATASOURCE ( provider_name, init_string )
provider_name: 如Sqloledb, Microsoft.Jet.OLEDB.4.0等
init_string: 连接字符串,如'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0'
提供了服务器名,对Excel来说就是文件名
用户ID,密码
Extended properties: 我试了填Excel 5.0 或8.0都可以,其他不行
最后的[Sheet1$]是页名,这里当做表名用,注意一定要加上$
另外一个例子,用来取其他sql server服务器上的数据:
SELECT *
from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=ServerName;User ID=MyUID;Password=MyPass'
).Northwind.dbo.Categories
哈哈,眼熟多了吧,一样的!
但是这个用法只用于ad hoc, 对于大量的操作还是用linked server比较正规, linked server这么加:
EXEC sp_addlinkedserver 'Excel',
'Jet 4.0',
'Microsoft.Jet.OLEDB.4.0',
'D:\book1.xls',
NULL,
相关文档:
使用过SQL Server的人应该都清楚,SQL Server常用的有两种认证方式,一种是本地系统账户认证(Windows Authentication ),一种是使用用户名和密码(SQL Server Authentication ),第二种认证方式必须启用SQL Server的混合模式。
1.Windows Authentication连接部分代码段:
<?php
$serverName = "(local)";
$co ......
1 TOP
这是一个大家经常问到的问题,例如在SQLSERVER中可以使用如下语句来取得记录集中的前十条记录:
SELECT TOP 10 * from [index] ORDER BY indexid DESC;
但是这条SQL语句在SQLite中是无法执行的,应该改为:
SELECT * from [index] ORDER BY indexid DESC limit 0,10;
其中limit 0,10表示从第0条记录开始,往后 ......
摘自:伊仪秋水
SQL Server Management Studio (SSMS) 的“连接到服务器”对话框会记录用户所有访问过的服务器名称,这个功能对于经常连接多个数据库的人来说确实挺方便的。
不过使用了一段时间之后,这个列表会变得很长。里面还有很多服务器名称都已经失效了,很想把这个列表清空了。但是很郁闷在SSMS的界面找 ......
Oracle SQL 的优化规
一:尽量少用IN操作符,基本上所有的IN操作符都可以用EXISTS代替 ,用IN写出来的SQL,的优点是比较容易写及清晰易懂,但是用IN的SQL
性能总是比较低的,从ORACLE执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别:
ORACLE试图将其转换成多个表的连接,如果转换 ......
ALTER function dbo.UDF_SplitSubString
(
@Expression varchar(8000)
,@Delimiter varchar(100)
,@ int
)
returns varchar(8000)
as
begin
--declare @Expression varchar(8000)
--set @Expre ......