1
:执行另一服务器上的存储过程
exec OPENDATASOURCE (
' SQLOLEDB ' ,
' Data Source=远程ip;User ID=sa;Password=密码 '
).库名.dbo.存储过程名
2 :将资料插入另一服务器上的表中
select * into 本地库名..表名 from OPENDATASOURCE (
' SQLOLEDB ' ,
' Data Source=远程ip;User ID=sa;Password=密码 '
).库名.dbo.表名
insert 本地库名..表名 select * from OPENDATASOURCE (
' SQLOLEDB ' ,
' Data Source=远程ip;User ID=sa;Password=密码 '
).库名.dbo.表名
或使用联结服务器:
EXEC sp_addlinkedserver ' 别名 ' , '' , ' MSDASQL ' , NULL , NULL , ' DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码; '
exec sp_addlinkedsrvlogin @rmtsrvname = ' 别名 ' , @useself = ' false ' , @locallogin = ' sa ' , @rmtuser = ' sa ' , @rmtpassword = ' 密码 '
GO
(请注意上面的两步要同时运行)
然后你就可以如下:
select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
go
3 :
如果在事务里使用连接服务器要加上
分布式事务:
两边启动dtc
set XACT_ABORT on
set ANSI_NULL_DFLT_ON on
set ANSI_WARNINGS on
BEGIN DISTRIBUTED TRANSACTION
select * from OPENDATASOURCE ( ' MSDASQL ' , ' DRIVER={SQL Server};SERVER=ip;UID=sa;PWD=密码; ' ).pubs.dbo.jobs
commit tran
select stockinid,stockindt from stockin as a where a.stockinid in ( select b.stockinid from stockindta as b)
CONVERT ( varchar ,p.end_date, 121 )
函数 CONVERT ( ) 带有两个变量。第一个变量指定了数据类型和长度。第二个变量指定了要进行转换的字段。
SELECT CONVERT ( varchar ( 30 ), getdate (), 101 ) now
< ! -- StartFragment-->CONVERT的使用方法:
////////////////////////////////////////////////////////////////////////////////////////
格式:
CONVERT (data_type,expression [ ,style ] )
说明:
此样式一般在时间类型( datetime , smalldatetime )与字符串类型( nchar , nvarchar , char , varchar )
相互转换的时候才用到.
例子:
SELECT CONVERT ( varchar ( 30 ), getdate (), 101 ) now
结果为
now
-- -------------------------------------
09 / 15 / 2001
/////////////////////////////////////////////////////////////////////////////////////
style数字在转换时间时的含义如下
-- -----------------------------------------------------------------------------------------------
Style(2位表示年份) | Style(4位表示年份) | 输入输出格式
-- -----------------------------------------------------------------------------------------------
- | 0 or 100 | mon dd yyyy hh:miAM(或PM)
-- -----------------------------------------------------------------------------------------------
1 | 101 | mm / dd / yy
-- -----------------------------------------------------------------------------------------------
2 | 102 | yy - mm - dd
-- -----------------------------------------------------------------------------------------------
3 | 103 | dd / mm / yy
-- -----------------------------------------------------------------------------------------------
4 | 104 | dd - mm - yy
-- -----------------------------------------------------------------------------------------------
5 | 105 | dd - mm - yy
-- -----------------------------------------------------------------------------------------------
6 | 106 | dd mon yy
-- -----------------------------------------------------------------------------------------------
7 | 107 | mon dd,yy
-- -----------------------------------------------------------------------------------------------
8 | 108 | hh:mm:ss
-- -----------------------------------------------------------------------------------------------
- | 9 or 109 | mon dd yyyy hh:mi:ss:mmmmAM(或PM)
-- -----------------------------------------------------------------------------------------------
10 | 110 | mm - dd - yy
-- -----------------------------------------------------------------------------------------------
11 | 111 | yy / mm / dd
-- -----------------------------------------------------------------------------------------------
12 | 112 | yymmdd
-- -----------------------------------------------------------------------------------------------
- | 13 or 113 | dd mon yyyy hh:mi:ss:mmm(24小时制)
-- -----------------------------------------------------------------------------------------------
14 | 114 | hh:mi:ss:mmm(24小时制)
-- -----------------------------------------------------------------------------------------------
- | 20 or 120 | yyyy - mm - dd hh:mi:ss(24小时制)
-- -----------------------------------------------------------------------------------------------
- | 21 or 121 | yyyy - mm - dd hh:mi:ss:mmm(24小时制)
-- -----------------------------------------------------------------------------------------------
-- ------数学函数
1 .绝对值
S: select abs ( - 1 ) value
O: select abs ( - 1 ) value from dual
2 .取整(大)
S: select ceiling ( - 1.001 ) value
O: select ceil( - 1.001 ) value from dual
3 .取整(小)
S: select floor ( - 1.001 ) value
O: select floor ( - 1.001 ) value from dual
4 .取整(截取)
S: select cast ( - 1.002 as int ) value
O: select trunc( - 1.002 ) value from dual
5 .四舍五入
S: select round ( 1.23456 , 4 ) value 1.23460
O: select round ( 1.23456 , 4 ) value from dual 1.2346
6 .e为底的幂
S: select Exp ( 1 ) value 2.7182818284590451
O: select Exp ( 1 ) value from dual 2.71828182
7 .取e为底的对数
S: select log ( 2.7182818284590451 ) value 1
O: select ln( 2.7182818284590451 ) value from dual; 1
8 .取10为底对数
S: select log10 ( 10 ) value 1
O: select log ( 10 , 10 ) value from dual; 1
9 .取平方
S: select SQUARE ( 4 ) value 16
O: select power ( 4 , 2 ) value from dual 16
10 .取平方根
S: select SQRT ( 4 ) value 2
O: select SQRT ( 4 ) value from dual 2
11 .求任意数为底的幂
S: select power ( 3 , 4 ) value 81
O: select power ( 3 , 4 ) value from dual 81
12 .取随机数
S: select rand () value
O: select sys.dbms_random.value( 0 , 1 ) value from dual;
13 .取符号
S: select sign ( - 8 ) value - 1
O: select sign ( - 8 ) value from dual - 1
-- --------数学函数
14 .圆周率
S: SELECT PI () value 3.1415926535897931
O:不知道
15 . sin , cos , tan 参数都以弧度为单位
例如: select sin ( PI () / 2 ) value 得到1(SQLServer)
16 . Asin , Acos , Atan ,Atan2 返回弧度
17 .弧度角度互换(SQLServer,Oracle不知道)
DEGREES :弧度 - 〉角度
RADIANS :角度 - 〉弧度
-- -------数值间比较
18 . 求集合最大值
S: select max (value) value from
( select 1 value
union
select - 2 value
union
select 4 value
union
select 3 value)a
O: select greatest( 1 , - 2 , 4 , 3 ) value from dual
19 . 求集合最小值
S: select min (value) value from
( select 1 value
union
select - 2 value
union
select 4 value
union
select 3 value)a
O: select least( 1 , - 2 , 4 , 3 ) value from dual
20 .如何处理null值(F2中的null以10代替)
S: select F1, IsNull (F2, 10
exec OPENDATASOURCE (
' SQLOLEDB ' ,
' Data Source=远程ip;User ID=sa;Password=密码 '
).库名.dbo.存储过程名
2 :将资料插入另一服务器上的表中
select * into 本地库名..表名 from OPENDATASOURCE (
' SQLOLEDB ' ,
' Data Source=远程ip;User ID=sa;Password=密码 '
).库名.dbo.表名
insert 本地库名..表名 select * from OPENDATASOURCE (
' SQLOLEDB ' ,
' Data Source=远程ip;User ID=sa;Password=密码 '
).库名.dbo.表名
或使用联结服务器:
EXEC sp_addlinkedserver ' 别名 ' , '' , ' MSDASQL ' , NULL , NULL , ' DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码; '
exec sp_addlinkedsrvlogin @rmtsrvname = ' 别名 ' , @useself = ' false ' , @locallogin = ' sa ' , @rmtuser = ' sa ' , @rmtpassword = ' 密码 '
GO
(请注意上面的两步要同时运行)
然后你就可以如下:
select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
go
3 :
如果在事务里使用连接服务器要加上
分布式事务:
两边启动dtc
set XACT_ABORT on
set ANSI_NULL_DFLT_ON on
set ANSI_WARNINGS on
BEGIN DISTRIBUTED TRANSACTION
select * from OPENDATASOURCE ( ' MSDASQL ' , ' DRIVER={SQL Server};SERVER=ip;UID=sa;PWD=密码; ' ).pubs.dbo.jobs
commit tran
select stockinid,stockindt from stockin as a where a.stockinid in ( select b.stockinid from stockindta as b)
CONVERT ( varchar ,p.end_date, 121 )
函数 CONVERT ( ) 带有两个变量。第一个变量指定了数据类型和长度。第二个变量指定了要进行转换的字段。
SELECT CONVERT ( varchar ( 30 ), getdate (), 101 ) now
< ! -- StartFragment-->CONVERT的使用方法:
////////////////////////////////////////////////////////////////////////////////////////
格式:
CONVERT (data_type,expression [ ,style ] )
说明:
此样式一般在时间类型( datetime , smalldatetime )与字符串类型( nchar , nvarchar , char , varchar )
相互转换的时候才用到.
例子:
SELECT CONVERT ( varchar ( 30 ), getdate (), 101 ) now
结果为
now
-- -------------------------------------
09 / 15 / 2001
/////////////////////////////////////////////////////////////////////////////////////
style数字在转换时间时的含义如下
-- -----------------------------------------------------------------------------------------------
Style(2位表示年份) | Style(4位表示年份) | 输入输出格式
-- -----------------------------------------------------------------------------------------------
- | 0 or 100 | mon dd yyyy hh:miAM(或PM)
-- -----------------------------------------------------------------------------------------------
1 | 101 | mm / dd / yy
-- -----------------------------------------------------------------------------------------------
2 | 102 | yy - mm - dd
-- -----------------------------------------------------------------------------------------------
3 | 103 | dd / mm / yy
-- -----------------------------------------------------------------------------------------------
4 | 104 | dd - mm - yy
-- -----------------------------------------------------------------------------------------------
5 | 105 | dd - mm - yy
-- -----------------------------------------------------------------------------------------------
6 | 106 | dd mon yy
-- -----------------------------------------------------------------------------------------------
7 | 107 | mon dd,yy
-- -----------------------------------------------------------------------------------------------
8 | 108 | hh:mm:ss
-- -----------------------------------------------------------------------------------------------
- | 9 or 109 | mon dd yyyy hh:mi:ss:mmmmAM(或PM)
-- -----------------------------------------------------------------------------------------------
10 | 110 | mm - dd - yy
-- -----------------------------------------------------------------------------------------------
11 | 111 | yy / mm / dd
-- -----------------------------------------------------------------------------------------------
12 | 112 | yymmdd
-- -----------------------------------------------------------------------------------------------
- | 13 or 113 | dd mon yyyy hh:mi:ss:mmm(24小时制)
-- -----------------------------------------------------------------------------------------------
14 | 114 | hh:mi:ss:mmm(24小时制)
-- -----------------------------------------------------------------------------------------------
- | 20 or 120 | yyyy - mm - dd hh:mi:ss(24小时制)
-- -----------------------------------------------------------------------------------------------
- | 21 or 121 | yyyy - mm - dd hh:mi:ss:mmm(24小时制)
-- -----------------------------------------------------------------------------------------------
-- ------数学函数
1 .绝对值
S: select abs ( - 1 ) value
O: select abs ( - 1 ) value from dual
2 .取整(大)
S: select ceiling ( - 1.001 ) value
O: select ceil( - 1.001 ) value from dual
3 .取整(小)
S: select floor ( - 1.001 ) value
O: select floor ( - 1.001 ) value from dual
4 .取整(截取)
S: select cast ( - 1.002 as int ) value
O: select trunc( - 1.002 ) value from dual
5 .四舍五入
S: select round ( 1.23456 , 4 ) value 1.23460
O: select round ( 1.23456 , 4 ) value from dual 1.2346
6 .e为底的幂
S: select Exp ( 1 ) value 2.7182818284590451
O: select Exp ( 1 ) value from dual 2.71828182
7 .取e为底的对数
S: select log ( 2.7182818284590451 ) value 1
O: select ln( 2.7182818284590451 ) value from dual; 1
8 .取10为底对数
S: select log10 ( 10 ) value 1
O: select log ( 10 , 10 ) value from dual; 1
9 .取平方
S: select SQUARE ( 4 ) value 16
O: select power ( 4 , 2 ) value from dual 16
10 .取平方根
S: select SQRT ( 4 ) value 2
O: select SQRT ( 4 ) value from dual 2
11 .求任意数为底的幂
S: select power ( 3 , 4 ) value 81
O: select power ( 3 , 4 ) value from dual 81
12 .取随机数
S: select rand () value
O: select sys.dbms_random.value( 0 , 1 ) value from dual;
13 .取符号
S: select sign ( - 8 ) value - 1
O: select sign ( - 8 ) value from dual - 1
-- --------数学函数
14 .圆周率
S: SELECT PI () value 3.1415926535897931
O:不知道
15 . sin , cos , tan 参数都以弧度为单位
例如: select sin ( PI () / 2 ) value 得到1(SQLServer)
16 . Asin , Acos , Atan ,Atan2 返回弧度
17 .弧度角度互换(SQLServer,Oracle不知道)
DEGREES :弧度 - 〉角度
RADIANS :角度 - 〉弧度
-- -------数值间比较
18 . 求集合最大值
S: select max (value) value from
( select 1 value
union
select - 2 value
union
select 4 value
union
select 3 value)a
O: select greatest( 1 , - 2 , 4 , 3 ) value from dual
19 . 求集合最小值
S: select min (value) value from
( select 1 value
union
select - 2 value
union
select 4 value
union
select 3 value)a
O: select least( 1 , - 2 , 4 , 3 ) value from dual
20 .如何处理null值(F2中的null以10代替)
S: select F1, IsNull (F2, 10