常用sql语句记录
1、表
--建表
if OBJECT_ID('Student') is not null
create table Student(
ID int identity(1,1) not null,
Name nvarchar(50),
Code nvarchar(50),
flag int default(0)
) --建表时添加约束,表字段定义外键、由函数计算获得
CREATE TABLE [dbo].[A](
[Id] [int] IDENTITY(1,1) NOT NULL primary key,
[ClassId] [int] NOT NULL foreign key references [dbo].[Class] ([Id]) ,
[Name] nvarchar(50),
[InvoiceYear] int,
[InvoiceMonth] int,
[Date] AS (dbo.ToDateFromPeriod(InvoiceYear,InvoiceMonth))PERSISTED,
Memo nvarchar(50) NULL
) --增加列
if not exists(select * from syscolumns where id=OBJECT_ID('Student') and name='ID')
alter table student add id int identity(1,1) not null --添加主键约束
if OBJECT_ID('PK_Student') is not null
ALTER TABLE Student DROP CONSTRAINT [PK_ApprovalMatrix]
GO
ALTER TABLE Student WITH CHECK ADD CONSTRAINT [PK_ApprovalMatrix] PRIMARY KEY CLUSTERED (ID asc)
GO --删除表
DELETE FROM [Student] --清空标识值
DBCC CHECKIDENT (Student, RESEED,0) --插入数据
IF NOT EXISTS(SELECT * FROM [Student] WHERE NAME='Win')
INSERT [Student] ([Code],[Memo]) VALUES (N'CA',N'Simon Deschenes') --更新数据
UPDATE [dbo].[Student] SET Code = '' WHERE NAME='Win'
--insert into要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量
Insert into Table2(field1,field2,...) select value1,value2,... from Table1
--select into,要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。
SELECT vale1, value2 into Table2 from Table1
insert into and select into :http://www.cnblogs.com/freshman0216/archive/2008/08/15/1268316.html
2、函数
2.1 --自定义函数,根据年月返回日期
USE TEST
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create function [dbo].[ToDateFromPeriod](@Year int, @Month int)
returns datetime
with SCHEMABINDING
as
-- Returns the first of the month for the specified year and month.
begin
return dateadd(mm,((@Year-1900)*12)+@Month-1,0)
end
--调用自定义函数
select dbo.[ToDateFromPeriod]('2015','1') as result
2.2、表值函数
2.2.1 直接返回表
create function getp(@id int)
returns table as
return select * from [Project] where ClientId=@id
2.2.2 返回自定义表
create function getp()
returns @t table (id int ,name varchar(50))
as
begin
insert into @t select p.Id,p.Name from Project p
return
end
3、判断对象是否存在
3.1 判断用户是否存在,并创建
if USER_ID('fas') is null
CREATE USER [fas] WITHOUT LOGIN WITH DEFAULT_SCHEMA=[dbo]
其他相关判断参考http://www.cnblogs.com/fumj/archive/2012/07/15/2592558.html
3.2 判断自定义类型是否存在
if type_id('userid') is null
create type [dbo].[userid] from [nvarchar](150) null
4、给角色db_owner添加用户dds
EXEC sp_addrolemember 'db_owner', 'dds'
角色功能https://www.mssqltips.com/sqlservertip/1900/understanding-sql-server-fixed-database-roles/
5、SET NOCOUNT ON
使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息
如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。
http://blog.csdn.net/thomas_chen/article/details/1660562
6、查询数据库中所有表的名称,及数量
select name from sysobjects where xtype='u'
select count(0) from sysobjects where xtype='u'
7、删除数据库中的所有表
select 'delete from [' + name + ']' from sysobjects where xtype='u'
执行上面sql,然后复制结果再次执行。
常用sql语句记录的更多相关文章
- 【SQL】Mysql常用sql语句记录
1.创建用户.赋予权限 CREATE DATABASE scadm DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER 's ...
- Mysql 常用 SQL 语句集锦
Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...
- Mysql 常用 SQL 语句集锦 转载(https://gold.xitu.io/post/584e7b298d6d81005456eb53)
Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...
- 50个常用SQL语句
50个常用SQL语句 Student(S#,Sname,Sage,Ssex) 学生表 S#学号,主键 Course(C#,Cname,T#) 课程表 C#课程号,主键 SC(S#, ...
- oracle sqlplus及常用sql语句
常用sql语句 有需求才有动力 http://blog.csdn.net/yitian20000/article/details/6256716 常用sql语句 创建表空间:create tables ...
- oracle常用SQL语句(汇总版)
Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, ...
- 常用SQL语句(增删查改、合并统计、模糊搜索)
转自:http://www.cnblogs.com/ljianhui/archive/2012/08/13/2695906.html 常用SQL语句 首行当然是最基本的增删查改啦,其中最重要的是查. ...
- 常用sql语句整理:mysql
## 常用sql语句整理:mysql1. 增- 增加一张表```CREATE TABLE `table_name`( ... )ENGINE=InnoDB DEFAULT CHARSET=utf8 ...
- 50个常用sql语句 网上流行的学生选课表的例子
50个常用sql语句 建表: --学生表tblStudent(编号StuId.姓名StuName.年龄StuAge.性别StuSex) --课程表tblCourse(课程编号CourseId.课程名称 ...
随机推荐
- 2017中国大学生程序设计竞赛 - 女生专场A【模拟】
A HDU - 6023 [题意]:求AC题数和总时长. [分析]:模拟.设置标记数组记录AC与否,再设置错题数组记录错的次数.罚时罚在该题上,该题没AC则不计入总时间,AC则计入.已经AC的题不用再 ...
- 2018 ACM-ICPC 南京网络赛
Problem A Problem B Problem C Problem D Problem E Problem F Problem G Problem H Problem I Problem J ...
- Codeforces 856B - Similar Words
856B - Similar Words 题意 如果一个字符串可以通过去掉首位字母得到另一个字符串,则称两个字符串相似. 给出一个字符串集合,求一个新的字符串集合,满足新集合里的字符串是原字符串集合中 ...
- uva10256
uva10256 题意 平面上存在两种颜色的点,问是否存在一条直线,使得任取一个红点和一个蓝点都在直线的异侧,这条直线不经过任何点. 分析 对每种颜色的点求一发凸包,问题等价于判断两个多边形是否相交或 ...
- 洛谷——P2556 [AHOI2002]黑白图像压缩
P2556 [AHOI2002]黑白图像压缩 题目描述 选修基础生物基因学的时候, 小可可在家里做了一次图像学试验. 她知道:整个图像其实就是若干个图像点(称作像素)的序列,假定序列中像素的个数总是 ...
- 18、Flask实战第18天:Flask-session
session的基本概念 session和cookie的作用有点类似,都是为了存储用户相关的信息.不同的是,cookie是存储在本地浏览器,session是一个思路.一个概念.一个服务器存储授权信息的 ...
- Python RE模块中search()和match()的区别
match()函数只检测RE是不是在string的开始位置匹配, search()会扫描整个string查找匹配: 也就是说match()只有在0位置匹配成功的话才有返回, 如果不是开始位置匹配成功的 ...
- 【2-SAT】Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) D. Innokenty and a Football League
先反复地扫(不超过n次),把所有可以确定唯一取法的给确定下来. 然后对于剩下的不能确定的,跑2-SAT.输出可行解时,对于a和¬a,如果a所在的强连通分量序号在¬a之前,则取a,否则不取a.如果a和¬ ...
- 【贪心】Gym - 100507H - Pair: normal and paranormal
每次取相邻的两个可以射击的从序列中删除,重复n次. 可以看作括号序列的匹配. #include<cstdio> #include<vector> using namespace ...
- 【分块答案】【最小生成树】【kruscal】bzoj1196 [HNOI2006]公路修建问题
二分(分块)枚举 边权上限.用kruscal判可行性. #include<cstdio> #include<algorithm> #include<cstring> ...