`
hgq0011
  • 浏览: 540668 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

sql一些常用的方法

阅读更多

 

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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics