常用MSSQL语句
现在很少用SQL 写东西,但有时真用起来半天想不起来,看来还是有必要记录一下。。。
新建表: 
 create table [表名] 
 ( 
 [自动编号字段] int IDENTITY (1,1) PRIMARY KEY , 
 [字段1] nVarChar(50) default \'默认值\' null , 
 [字段2] ntext null , 
 [字段3] datetime, 
 [字段4] money null , 
 [字段5] int default 0, 
 [字段6] Decimal (12,4) default 0,
)
修改字段类型
Alter table [表名] Alter column [列名] [列类型]
创建表时同时创建主键、外键:
create table grade
(id int ,
grade int
constraint id_fk foreign key (id) references student (id)
)
create Table Examination (e_id smallint primary key not null,l_language float, english float,computer float) --可以创建表时同时创建主键、外键
alter table examination add constraint FK_ID foreign key(student_id) references student(student_id) --当然也可以建立表后再建外键
alter table examination add student_id int not null   --修改student_id 为not null 
alter table examination alter column e_id nvarchar not null  --也要修改为not null 
alter table examination add constraint PK_Id primary key(e_id) --添加主键
alter table examination drop constraint PK_id   --删除主键
alter table examination alter column student_id nvarchar(50)  --修改字段数据类型
alter table examination add constraint FK_ID foreign key(student_id)  references student(student_id) --添加外键约束
删除表: 
 Drop table [表名]
删除所有表:
DECLARE curItems CURSOR
 FOR select [name] from sysobjects where xtype='U'
 FOR READ ONLY
 OPEN curItems
 DECLARE @n  NVARCHAR(100),@m NVARCHAR(100)
 FETCH FROM curItems INTO @n
 WHILE @@FETCH_STATUS=0
 BEGIN
  set @m=@n
     exec('Drop Table ' + @m)
 FETCH NEXT FROM curItems INTO 
 @n
 END
 CLOSE  curItems
 DEALLOCATE  curItems
--删除主键
alter table 表名 drop constraint 主键名
 --添加主键
 alter table 表名 add constraint 主键名 primary key(字段名1,字段名2……)
 --添加非聚集索引的主键
 alter table 表名 add constraint 主键名 primary key NONCLUSTERED(字段名1,字段名2……)
插入数据: 
 INSERT INTO [表名] (字段1,字段2) VALUES (100,\'51WINDOWS.NET\')
删除数据: 
 DELETE FROM [表名] WHERE [字段名]>100
更新数据: 
 UPDATE [表名] SET [字段1] = 200,[字段2] = \'51WINDOWS.NET\' WHERE [字段三] = \'HAIWA\'
新增字段: 
 ALTER TABLE [表名] ADD [字段名] NVARCHAR (50) NULL
删除字段: 
 ALTER TABLE [表名] DROP COLUMN [字段名]
修改字段: 
 ALTER TABLE [表名] ALTER COLUMN [字段名] NVARCHAR (50) NULL
重命名表:(Access 重命名表,请参考文章:在Access数据库中重命名表) 
 sp_rename \'表名\', \'新表名\', \'OBJECT\'
新建约束: 
 ALTER TABLE [表名] ADD CONSTRAINT 约束名 CHECK ([约束字段] <= \'2000-1-1\')
删除约束: 
 ALTER TABLE [表名] DROP CONSTRAINT 约束名
新建默认值 
 ALTER TABLE [表名] ADD CONSTRAINT 默认值名 DEFAULT \'51WINDOWS.NET\' FOR [字段名]
删除默认值 
 ALTER TABLE [表名] DROP CONSTRAINT 默认值名
删除Sql Server 中的日志,减小数据库文件大小 
 dump transaction 数据库名 with no_log 
 backup log 数据库名 with no_log 
 dbcc shrinkdatabase(数据库名) 
 exec sp_dboption \'数据库名\', \'autoshrink\', \'true\'
\\\'添加字段通用函数 
 Sub AddColumn(TableName,ColumnName,ColumnType) 
 Conn.Execute(\"Alter Table \"&TableName&\" Add \"&ColumnName&\" \"&ColumnType&\"\") 
 End Sub
\\\'更改字段通用函数 
 Sub ModColumn(TableName,ColumnName,ColumnType) 
 Conn.Execute(\"Alter Table \"&TableName&\" Alter Column \"&ColumnName&\" \"&ColumnType&\"\") 
 End Sub
\\\'检查表是否存在
sql=\"select count(*) as dida from sysobjects where id = object_id(N\'[所有者].[表名]\') and OBJECTPROPERTY(id, N\'IsUserTable\') = 1\"
set rs=conn.execute(sql)
response.write rs(\"dida\")\'返回一个数值,0代表没有,1代表存在
判断表是否存在: 
 select * from sysobjects where id = object_id(N\'[dbo].[tablename]\') and OBJECTPROPERTY(id, N\'IsUserTable\') = 1
某个表结构 
 select * from syscolumns where id = object_id(N\'[dbo].[你的表名]\') and OBJECTPROPERTY(id, N\'IsUserTable\') = 1
修改表前缀:
ALTER SCHEMA dbo TRANSFER prename.tablename;
如果表2已经存在,把表1中的记录加到表2中的语句: 
 insert   into   表2   (字段1,字段2,...)   select   字段1,字段2,..   from   表2   where   ...
如果表2不存在,则用下面的语句会自动生成表2,字段的类型和表1一样: 
         select   字段1,字段2,..   INTO   表2   from   表1   where   ...
常用MSSQL语句的更多相关文章
- MSSQL注入常用SQL语句整理
		很多情况下使用工具对mssql注入并不完善,所以我们就需要手工注入,一下是本人收集的一些mssql的sql语句. 手工MSSQL注入常用SQL语句 and exists (select * from ... 
- 经典MSSQL语句大全和常用SQL语句命令的作用
		下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL类型包括数据库.表的创建,修改,删除,声明—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML类 ... 
- Mysql 常用 SQL 语句集锦
		Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ... 
- mysql常用操作语句
		mysql常用操作语句 1.mysql -u root -p 2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ... 
- 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语句
		性能测试常用Oracle语句 显示数据库当前的连接数 select count(*) from v$process; 显示数据库最大连接数: select value from v$parameter ... 
- DirectX基础 常用函数语句
		DirectX常用函数语句 常用数学类函数: 计算向量的长度(模): FLOAT D3DXVec3Length(CONST D3DXVECTOR3* pV); 向量的规范化: D3DXVECTOR3 ... 
- ios中常见数据存储方式以及SQLite常用的语句
		在iOS中,根据不同的需求对应的有多种数据存储方式: 1.NSUserdefaults 将数据存储到沙盒中(library),方便易用,但是只能存储系统提供的数据类型(plist),不能存储自定义的 ... 
随机推荐
- Django与Celery配合实现定时任务
			一.前言 Celery是一个基于python开发的分布式任务队列,而做python WEB开发最为流行的框架莫属Django,但是Django的请求处理过程都是同步的无法实现异步任务,若要实现异步任务 ... 
- Django——图书管理系统
			基于Django的图书管理系统 1.主体功能 1.列出图书列表.出版社列表.作者列表 2.点击作者,会列出其出版的图书列表 3.点击出版社,会列出旗下图书列表 4.可以创建.修改.删除 图书.作者.出 ... 
- Eureka源码解读
			Eureka是我接触分布式软件和服务的第一个框架,所以其原理和实现我的好好研究一下,Eureka可以参看这篇博文:http://springcloud.cn/view/29 初学者会在教程中看到使用@ ... 
- 面向面试编程代码片段之GC
			x 代码 using System; using System.Threading; public static class Program{ public static void Main(){ T ... 
- F#周报2019年第14期
			新闻 发布F# 4.6 SAFE Stack v1.0 发布fable编译器2.2,Fable.Core 3及其它 发布ML.NET 1.0 RC Saturn:增加路由诊断页面 Visual Stu ... 
- style样式不换行
			style="white-space:nowrap;"不自动换行<font color="" size=""></font ... 
- CentOS最基本的20个常用命令
			1. man 对你熟悉或不熟悉的命令提供帮助解释eg:man ls 就可以查看ls相关的用法注:按q键或者ctrl+c退出,在linux下可以使用ctrl+c终止当前程序运行. 2. ls 查看目录或 ... 
- angularjs知识点
			<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ... 
- 学习ActiveMQ(二):点对点(队列)模式消息演示
			一:介绍 点对点的消息发送方式主要建立在 消息(Message ),队列(Queue),发送者(Sender),消费者(receiver)上,Queue 存贮消息,Sender 发送消息,receiv ... 
- jmeter 之变量传递
			最近遇到个问题,一个线程组的变量怎么应用到另一个线程组,试了下,通过提取器设置的变量只能用于当前线程组,不能用于其他线程组,只能试试设置property Parameters,应该还有别的办法这只是其 ... 
