Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1417704
  • 博文数量: 254
  • 博客积分: 4173
  • 博客等级: 中校
  • 技术积分: 3400
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-03 21:24
个人简介

不为失败找借口,只为成功找方法!

文章分类

全部博文(254)

文章存档

2021年(3)

2020年(1)

2019年(2)

2017年(10)

2016年(6)

2015年(19)

2014年(24)

2013年(19)

2012年(52)

2011年(118)

分类: Oracle

2014-09-21 10:01:47

  一,语法分析:
1. castconvert的语法

Syntax for CAST:

CAST ( expression AS data_type [ ( length ) ] )

Syntax for CONVERT:

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

2.cast convert的区别

convert cast更加的强大,他可以指定转换以后数据的样式,而cast则使用默认的样式。

在转换时,目标数据类型有样式的数据类型比如smalldatetime的一般使用convert,而在转换目标数据类型没有样式时一般使用cast更加效率

有数据样式的数据类型

Datetime,smalldatetime,money,smallmoney,xml,二进制(binary(n)varbinary(n)char(n) varchar(n))

具体参考mssql帮助文档

3使用转换精度的损失来截取字符串

如截取datetime的日期可以使用convert(varchar(10),getdate(),120)

截取年份 select SUBSTRING(convert(varchar(22),getdate(),120),1,4)

      openquery 的用法:            ---------------本例转载!!!
--创建链接服务器 
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 
--把本地表导入远程表 

insert opendatasource'SQLOLEDB ',  'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ').数据库.dbo.表名 
select * from 本地表

3、自己写的例子
 
--openrowset使用OLEDB的一些例子
select * from openrowset('SQLOLEDB','Server=(local);PWD=***;UID=sa;','select * from TB.dbo.school'as t
select * from openrowset('SQLOLEDB','Server=(local);PWD=***;UID=sa;',TB.dbo.school) as
 t
select * from openrowset('SQLOLEDB','Server=(local);Trusted_Connection=yes;',TB.dbo.school) as
 t
select * from openrowset('SQLOLEDB','(local)';'sa';'***','select * from TB.dbo.school'as
 t
select * from openrowset('SQLOLEDB','(local)';'sa';'***',TB.dbo.school) as
 t
select * from openrowset('SQLOLEDB','(local)';'sa';'***','select school.id as id1,people.id as id2 from TB.dbo.school inner join TB.dbo.people on school.id=people.id'as
 t

--openrowset使用SQLNCLI的一些例子(SQLNCLI在SqlServer2005以上才能使用)

select * from openrowset('SQLNCLI','(local)';'sa';'***','select * from TB.dbo.school'as t
select * from openrowset('SQLNCLI','Server=(local);Trusted_Connection=yes;','select * from TB.dbo.school'as
 t
select * from openrowset('SQLNCLI','Server=(local);UID=sa;PWD=***;','select * from TB.dbo.school'as
 t
select * from openrowset('SQLNCLI','Server=(local);UID=sa;PWD=***;',TB.dbo.school) as
 t
select * from openrowset('SQLNCLI','Server=(local);UID=sa;PWD=***;DataBase=TB','select * from dbo.school'as
 t

--openrowset其他使用

insert openrowset('SQLNCLI','Server=(local);Trusted_Connection=yes;','select name from TB.dbo.school where id=1'values('ghjkl')/*要不要where都一样,插入一行*/
update openrowset('SQLNCLI','Server=(local);Trusted_Connection=yes;','select name from TB.dbo.school where id=1'set name='kkkkkk'
delete from openrowset('SQLNCLI','Server=(local);Trusted_Connection=yes;','select name from TB.dbo.school where id=1')
--opendatasource使用SQLNCLI的一些例子

select * from opendatasource('SQLNCLI','Server=(local);UID=sa;PWD=***;').TB.dbo.school as t
select * from opendatasource('SQLNCLI','Server=(local);UID=sa;PWD=***;DataBase=TB').TB.dbo.school as
 t

--opendatasource使用OLEDB的例子

select * from opendatasource('SQLOLEDB','Server=(local);Trusted_Connection=yes;').TB.dbo.school as t

--opendatasource其他使用

insert opendatasource('SQLNCLI','Server=(local);Trusted_Connection=yes;').TB.dbo.school(name) values('ghjkl')/*要不要where都一样,插入一行*/
update opendatasource('SQLNCLI','Server=(local);Trusted_Connection=yes;').TB.dbo.school set name='kkkkkk'
delete from opendatasource('SQLNCLI','Server=(local);Trusted_Connection=yes;').TB.dbo.school where id=1

--openquery使用OLEDB的一些例子
exec sp_addlinkedserver   'ITSV''''SQLOLEDB','(local)' 
exec sp_addlinkedsrvlogin 'ITSV''false',null'sa''***'

select * FROM openquery(ITSV,  'SELECT *  FROM TB.dbo.school '

--openquery使用SQLNCLI的一些例子

exec sp_addlinkedserver   'ITSVA''''SQLNCLI','(local)' 
exec sp_addlinkedsrvlogin 'ITSVA''false',null'sa''***'

select * FROM openquery(ITSVA,  'SELECT *  FROM TB.dbo.school '

--openquery其他使用

insert openquery(ITSVA,'select name from TB.dbo.school where id=1'values('ghjkl')/*要不要where都一样,插入一行*/
update openquery(ITSVA,'select name from TB.dbo.school where id=1'set name='kkkkkk'
delete openquery(ITSVA,'select name from TB.dbo.school where id=1')
阅读(1734) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~