常用sql 语句

死锁查询过程

use master
go
declare @spid int,@bl int
DECLARE s_cur CURSOR FOR 
select  0 ,blocked
from (select * from sysprocesses where  blocked>0 ) a 
where not exists(select * from (select * from sysprocesses where  blocked>0 ) b  where a.blocked=spid)
union
select spid,blocked from sysprocesses where  blocked>0
OPEN s_cur
FETCH NEXT FROM s_cur INTO @spid,@bl
WHILE @@FETCH_STATUS = 0
begin
if @spid =0 
            select '引起数据库死锁的是: '+ CAST(@bl AS VARCHAR(10)) + '进程号,其执行的SQL语法如下'
else
            select '进程号SPID:'+ CAST(@spid AS VARCHAR(10))+ '被' + '进程号SPID:'+ CAST(@bl AS VARCHAR(10)) +'阻塞,其当前进程执行的SQL语法如下'
DBCC INPUTBUFFER (@bl )
FETCH NEXT FROM s_cur INTO @spid,@bl
end
CLOSE s_cur
DEALLOCATE s_cur
=============================================
--创建链接服务器
exec sp_addlinkedserver  'srv_lnk','','SQLOLEDB','10.1.1.22'

--带端口的连接

-- exec sp_addlinkedserver  'srv_lnk','','SQLOLEDB','10.1.1.22,5600'

exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'shise','06_Shi$kbZxsE'
go
 
--查询示例
select * from srv_lnk.数据库名.dbo.表名
 
--导入示例
select * into 表 from srv_lnk.数据库名.dbo.表名
 
go
--以后不再使用时删除链接服务器
exec sp_dropserver 'srv_lnk','droplogins'
==============================================
print 'next month:'
print dateadd(month,datediff(month,0,getdate())+1,0)
print 'previous month:'
print dateadd(month,datediff(month,0,getdate())-1,0)
print 'local month tom:'
print dateadd(ms,-3,dateadd(month,datediff(month,0,getdate())+1,0))
print 'local month up:'
print dateadd(month,datediff(month,0,getdate()),0)
print 'Today: from'
print dateadd(day,datediff(day,0,getdate()),0)
print 'to:'
print dateadd(ms,-3,dateadd(day,datediff(day,0,getdate())+1,0))
===============================================

SqlServer之Convert 函数应用


Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112): 20060516
Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM

===============================================

sql查询
select * from OPENDATASOURCE('SQLOLEDB','Data Source=10.1.1.22;User ID=shise;Password=06_Shi$kbZxsE').shise.dbo.vipcustomer

excel查询

SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="e:/test.xls";User ID=;Password=;Extended properties=Excel 5.0')...[sheet1$]

access查询

SELECT * FROM OpenDataSource ('Microsoft.Jet.OLEDB.4.0','Data Source="e:/test.mdb";User ID=;Password=')...tuser

 

EXEC master..xp_cmdshell 'bcp test.dbo.tusers out e:/Temp3.txt -c

-q -S"192.168.1.135" -U"sa" -P"hujie"' --参数:S 是SQL服务器名;U是用户;P是密码说明: 可以是各种格式文件,txt,xls等

SELECT * FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Text;HDR =Yes;DATABASE=e:/')...[test#txt]

 

批量插入从文本

BULK INSERT tusers
FROM 'e:/test.txt'
WITH (
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '/n'
)
==================================================================
事务

BEGIN TRANSACTION
.
if @@error<>0
 ROLLBACK TRANSACTION
else
 COMMIT TRANSACTION
==================================================================
select count(distinct mobil) from sms_mo
==================================================================

列出表结构
SELECT
 表名=case when a.colorder=1 then d.name else '' end,
 表说明=case when a.colorder=1 then isnull(f.value,'') else '' end,
 序号=a.colorder,
 标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
 主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=a.id and name in (
 SELECT name FROM sysindexes WHERE indid in(
 SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid
 ))) then '√' else '' end,
 字段名=a.name,
 类型=b.name,
 占用字节=a.length,
 长度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
 小数位=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
 允许空值=case when a.isnullable=1 then '√'else '' end,
 默认值=isnull(e.text,''),
 字段说明=isnull(g.[value],'')
  
 --into Email_tablestru 
 FROM syscolumns a
 left join systypes b on a.xusertype=b.xusertype
 inner join sysobjects d on a.id=d.id  and d.xtype='U' and  d.name<>'dtproperties'
 left join syscomments e on a.cdefault=e.id
 left join sysproperties g on a.id=g.id and a.colid=g.smallid 
 left join sysproperties f on d.id=f.id and f.smallid=0
 --where d.name=@tablename    --如果只查询指定表,加上此条件
 where d.name like 'Email%'
 order by d.name,a.id,a.colorder

-------------------------------------------------------

print 'next month:'
print dateadd(month,datediff(month,0,getdate())+1,0)
print 'previous month:'
print dateadd(month,datediff(month,0,getdate())-1,0)
print 'local month tom:'
print dateadd(ms,-3,dateadd(month,datediff(month,0,getdate())+1,0))
print 'local month up:'
print dateadd(month,datediff(month,0,getdate()),0)
print 'Today: from'
print dateadd(day,datediff(day,0,getdate()),0)
print 'to:'
print dateadd(ms,-3,dateadd(day,datediff(day,0,getdate())+1,0))
print convert(varchar(20),getdate(),112)
print dateadd(day,datediff(day,0,getdate())+1,0)

--------------------------------------------------

declare @LastName varchar(20)

declare @FirstName varchar(20)

DECLARE Employee_Cursor CURSOR FOR
SELECT LastName, FirstName FROM Northwind.dbo.Employees
OPEN Employee_Cursor
FETCH NEXT FROM Employee_Cursor into @LastName,@FirstName
WHILE @@FETCH_STATUS = 0
BEGIN

    pint @LastName
   FETCH NEXT FROM Employee_Cursor into @LastName,@FirstName
END
CLOSE Employee_Cursor
DEALLOCATE Employee_Cursor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值