sqlserver语句

来源:互联网 发布:欧拉回路算法 编辑:程序博客网 时间:2024/06/06 08:17
SQL查询字段约束名的语句 
select   b.name   from   syscolumns   a,sysobjects   b   
where   a.id=object_id('tablename')   and   
b.id=a.cdefault   and   a.name='field1'   and   b.name   like   'DF%'










1、查询所有表
select [id], [name] from [sysobjects] where [type] = 'u' order by [name]
2、查询所有数据库
3、select [name] from [sysdatabases] order by [name]
查询表中字段 
select [name] from [syscolumns] where [name] = 'tableXXX'order by [colid]


oracle


1、查找表的所有索引(包括索引名,类型,构成列):


select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = 要查询的表


2、查找表的主键(包括名称,构成列):


select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'P' and au.table_name = 要查询的表


3、查找表的唯一性约束(包括名称,构成列):


select column_name from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'U' and au.table_name = 要查询的表


4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):


select * from user_constraints c where c.constraint_type = 'R' and c.table_name = 要查询的表


查询外键约束的列名:


select * from user_cons_columns cl where cl.constraint_name = 外键名称


查询引用表的键的列名:


select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名


5、查询表的所有列及其属性


select t.*,c.COMMENTS from user_tab_columns t,user_col_comments c where t.table_name = c.table_name and t.column_name = c.column_name and t.table_name = 要查询的表


6、查询所有表
select* from tabs


7、查询数据赋值
DECLARE @val INT //定义变量
SELECT TOP 10 @val=  列名 FROM 表名 //给变量赋值
SELECT @val //查看变量的值


8.定义表
DECLARE @qustRes TABLE(列名 数据类型);
INSERT INTO @qustRes SELECT 列 from 表名 //将表里的数据查出插入定义的表


9.判断sql是否存在存储过程
----sqlserver判断
if (exists (select * from sys.objects where name = '存储过程名称'))
    drop proc proc_test
go
create.....
----oracle判断
select status from all_objects where object_type = 'PROCEDURE' and OWNER='用户名' and object_name='存储过程名';
or 
select status from user_objects where object_type = 'PROCEDURE' and object_name='存储过程名';


10 判断视图是否存在
Sql代码 
--SQL Server 2000   
IF EXISTS (SELECT * FROM sysviews WHERE object_id = ’[dbo].[视图名]’


11 判断临时表是否存在
Sql代码 
if object_id(’tempdb..#临时表名’) is not null  


12 判断数据库教程是否存在
Sql代码 
if exists (select * from sys.databases where name = ’数据库名’)  


13 判断表是否存在
Sql代码 
if exists (select * from sysobjects where id = object_id(N’[表名]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1) 


14.排序
 ORDER BY  CHARINDEX(字符串,子字符)
15. 生产行号
Select ROW_NUMBER() over(order by id) As R
16 联表更新
update  a set a.education = '本科' from NT_UserInfo a ,NT_User b where 
 a.UserID=b.UserID and b.email = 'carlfan2008@163.com'
17 Case when 的使用方法 
case when '条件'
then
else
end


或者
case  属性


when '值'
then
when '值'
then
when '值'
then


end


18.创建函数
--创建函数(返回varchar类型的值)
create function test(@Num varchar(20))--@Num 参数
returns varchar(50) --返回值类型
as 
begin 
declare @MSG varchar(20)
if(@Num =1)
    select @MSG ='正确'
else
    select @MSG ='错误'
return @MSG 
end 
--调用函数
select dbo.test(2)--传递参数2
返回结果:错误


--创建返回Table类型的函数
USE pubs
create function GetTableDetails()
returns TABLE
as 
    return (select * from sales )




--创建返回Table类型的函数create function fun_Report(
@policestationId varchar(50)
)
returns @tab table()
begin


insert into @tab select * from t
end


--调用函数
select * from dbo.GetTableDetails()--dbo.需要注意
返回sales表的所有记录。


19.删除函数
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[test]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[test]


20.抛出数据库异常
 RAISERROR('sfsadf',12,12)


21. 删除指定长度的字符串并在指定的起始点插入另一组字符
 STUFF() 


22.查询表字段对应的属性
SELECT a.NAME,b.name,c.name FROM sysobjects a,syscolumns b,systypes c 
WHERE a.id=b.id AND b.xtype=c.xtype AND a.name='TB_SM_QUEUE_LOG'


23.字段类型
SELECT * FROM systypes
24.字段信息
SELECT * FROM syscolumns
25.字段属性段类型
SELECT * FROM sysobjects
26.列的默认值
SELECT * FROM sys.default_constraints




27. --查进程,
select * from sys.sysprocesses


28.--查用户相关信息
select * from sys.sysusers


29.--此命令可以看到连接情况
Select * from sys.dm_exec_connections 


30.看到有多少会话
select session_id,status,login_name,login_time,* from sys.dm_exec_sessions 


31.--查请求的ID
Select sql_handle,* from sys.dm_exec_requests


32.等待
waitfor DELAY '00:00:01';  等待间隔多久
waitfor TIME'00:00:01';等到什么时间




33.死锁查询


EXECUTE sp_lock


EXECUTE sp_who 54


DBCC INPUTBUFFER(54)   
这个DBCC命令将返回正在EventInfo字段中运行的语句的相关信息,可以显示正在执行的sql命令


EXECUTE sp_who 52


34.解除死锁


Kill spid



























原创粉丝点击