数据库常用语句大全(三)

-> Jet 引擎访问 Excel 
select * from OpenRowSet('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=D:\Roy.xls', 'select * from [Sheet1$]')   
select * from OpenRowSet('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=D:\Roy.xls', [Sheet1$])   
select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=D:\Roy.xls')...[Sheet1$]   
select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0', 'Data Source=D:\Roy.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"')...[Sheet1$] 
--> ACE 引擎访问 Excel 97-2003   
select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:\Roy.xls', 'select * from [Sheet1$]')   
select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:\Roy.xls', [Sheet1$])   
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:\Roy.xls')...[Sheet1$]   
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0', 'Data Source=D:\Roy.xls;Extended Properties="Excel 12.0;HDR=Yes;IMEX=1"')...[Sheet1$]

--创建链接服务器 
exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' 
exec sp_addlinkedsrvlogin  'ITSV ', 'false ',null, '用户名 ', '密码 ' 

--查询示例 
select * from ITSV.数据库名.dbo.表名 

--导入示例 
select * into 表 from ITSV.数据库名.dbo.表名 

--以后不再使用时删除链接服务器 
exec sp_dropserver  'ITSV ', 'droplogins ' 

--连接远程/局域网数据(openrowset/openquery/opendatasource) 
--1、openrowset 

--查询示例 
select * from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) 

--生成本地表 
select * into 表 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) 

--把本地表导入远程表 
insert openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) 
select *from 本地表 

--更新本地表 
update b 
set b.列A=a.列A 
 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)as a inner join 本地表 b 
on a.column1=b.column1 

--openquery用法需要创建一个连接 

--首先创建一个连接创建链接服务器 
exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' 
--查询 
select * 
FROM openquery(ITSV,  'SELECT *  FROM 数据库.dbo.表名 ') 
--把本地表导入远程表 
insert openquery(ITSV,  'SELECT *  FROM 数据库.dbo.表名 ') 
select * from 本地表 
--更新本地表 
update b 
set b.列B=a.列B 
FROM openquery(ITSV,  'SELECT * FROM 数据库.dbo.表名 ') as a  
inner join 本地表 b on a.列A=b.列A 

--3、opendatasource/openrowset 
SELECT   * 
FROM   opendatasource( 'SQLOLEDB ',  'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' ).test.dbo.roy_ta 
--把本地表导入远程表
--语法:DATEADD (datepart , number, date )

select DATEADD(YEAR,1,getdate())--当前时间加一年
select DATEADD(MONTH,1,GETDATE())--当前时间加一月
select DATEADD(day,1,GETDATE())--当前时间加一天
select DATEADD(month,3,GETDATE())--当前时间加一季度
- datepart是将为其返回integer 的date(日期或时间值)的一部分。下表列出了所有有效的datepart 参数。
--用户定义的变量等效项是无效的
--语法:DATEPART ( datepart , date )
例子:
select DATEPART(yy,GETDATE())--获取年
,DATEname(yy,GETDATE())--获取年
-DATEDIFF ( datepart , startdate , enddate )
select DATEDIFF(yy,getdate(),dateadd(yy,11,getdate()))--11年后减去当前年
--CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
 参数
expression 
任何有效的表达式。

data_type 
目标数据类型。这包括 xml、bigint 和 sql_variant。不能使用别名数据类型。
有关可用数据类型的详细信息,请参阅数据类型 (Transact-SQL)。

length 
指定目标数据类型长度的可选整数。默认值为 30。

style 
指定 CONVERT 函数如何转换 expression 的整数表达式。如果样式为 NULL,
则返回 NULL。该范围是由 data_type 确定的
例子:


select CONVERT(varchar,GETDATE(),101)
--字符转换为日期时,Style的使用

--1. Style=101时,表示日期字符串为:mm/dd/yyyy格式
SELECT CONVERT(datetime,'11/1/2003',101)
--结果:2003-11-01 00:00:00.000

--2. Style=101时,表示日期字符串为:dd/mm/yyyy格式
SELECT CONVERT(datetime,'11/1/2003',103)
--结果:2003-01-11 00:00:00.000


/*== 日期转换为字符串==*/
DECLARE @dt datetime
SET @dt='2003-1-11'

--1. Style=101时,表示将日期转换为:mm/dd/yyyy 格式
SELECT CONVERT(varchar,@dt,101)
--结果:01/11/2003

--2. Style=103时,表示将日期转换为:dd/mm/yyyy 格式
SELECT CONVERT(varchar,@dt,103)
--结果:11/01/2003


/*== 这是很多人经常犯的错误,对非日期型转换使用日期的style样式==*/
SELECT CONVERT(varchar,'2003-1-11',101)
--结果:2003-1-11


 

发布了10 篇原创文章 · 获赞 0 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/lwbsleep/article/details/7209057