SQL SERVER 那点事
温故而知新
一.创建数据库
USE MASTER; GO IF EXISTS(SELECT *
FROM sys.databases
WHERE [name] = 'student')
BEGIN
ALTER DATABASE student SET SINGLE_USER WITH ROLLBACK IMMEDIATE IF Db_id('student') IS NOT NULL
DROP DATABASE student
END
ELSE
BEGIN
CREATE DATABASE student ON PRIMARY ( NAME=N'student', FILENAME=N'D:\ApplicationData\SQLSERVER\student.mdf', SIZE=5MB, MAXSIZE=UNLIMITED, FILEGROWTH=15% ) LOG ON ( NAME=N'student_log', FILENAME=N'D:\ApplicationData\SQLSERVER\student_log.mdf', SIZE=2MB, MAXSIZE=20MB, FILEGROWTH=1MB ) WITH CATALOG_COLLATION = DATABASE_DEFAULT
END GO
二.创建表
USE student;
GO
IF EXISTS(SELECT *
FROM sys.objects
WHERE [name] = 'studentInfo')
BEGIN
DROP TABLE studentInfo;
END
GO
CREATE TABLE studentInfo
(
stuId INT PRIMARY KEY IDENTITY(1, 1),
stuName NVARCHAR(20) NOT NULL,
stuPhone NVARCHAR(15) UNIQUE,
stuSex NVARCHAR(2) CHECK(stuSex='男' OR stuSex='女'),
stuAddress NVARCHAR(50) DEFAULT('China') )
GO
三.创建存储过程
IF EXISTS(SELECT * FROM sys.procedures WHERE [name]='procedure_name')
BEGIN
DROP PROCEDURE [procedure_name]
END
GO
CREATE PROCEDURE [procedure_name]
AS
BEGIN
INSERT studentInfo(stuName,stuPhone,stuSex) VALUES('Robin',110,'男');
UPDATE studentInfo SET stuPhone='' WHERE stuName='Robin';
END
GO
四.创建视图
USE student;
GO
CREATE VIEW VIEW_NAME
AS
SELECT * FROM studentInfo;
GO
五.创建索引
USE student GO IF EXISTS(SELECT *
FROM sys.indexes
WHERE [name] = 'INDEX_NAME')
DROP INDEX INDEX_NAME ON studentInfo CREATE NONCLUSTERED INDEX INDEX_NAME
ON studentInfo(stuName)
WITH FILLFACTOR=30 GO
六.创建触发器
IF EXISTS(SELECT *
FROM sys.triggers
WHERE name = 'TRIGGER_NAME')
DROP TRIGGER TRIGGER_NAME GO CREATE TRIGGER TRIGGER_NAME
ON studentInfo
FOR DELETE
AS
BEGIN
PRINT '删除'
END
七.创建标量函数
USE student; GO IF EXISTS(SELECT *
FROM sys.objects
WHERE type = 'FN'
AND [name] = 'FUNCTION_NAME')
DROP FUNCTION dbo.FUNCTION_NAME GO CREATE FUNCTION dbo.Function_name (@stuId INT)
RETURNS INT
AS
BEGIN
DECLARE @COUNT INT SELECT @COUNT = Count(*)
FROM studentInfo RETURN @COUNT
END GO
八.创建表值函数
USE student; GO IF EXISTS(SELECT *
FROM sys.objects
WHERE type = 'IF'
AND [name] = 'FUNCTION_NAME')
DROP FUNCTION dbo.FUNCTION_NAME GO CREATE FUNCTION dbo.Fnuction_name (@stuId INT)
RETURNS TABLE
AS
RETURN
(SELECT *
FROM studentInfo) GO
九.声明游标
DECLARE @STUID INT
DECLARE STU_CURSOR CURSOR FOR
SELECT stuId
FROM studentInfo OPEN STU_CURSOR FETCH NEXT FROM STU_CURSOR INTO @STUID WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE studentInfo
SET stuPhone = ''
WHERE stuId = @STUID PRINT @STUID FETCH NEXT FROM STU_CURSOR INTO @STUID
END CLOSE STU_CURID DEALLOCATE STU_CURSOR GO
SQL SERVER 那点事的更多相关文章
- 【转贴】SQL Server中关于跟踪(Trace)那点事
SQL Server中关于跟踪(Trace)那点事 https://www.cnblogs.com/zhijianliutang/p/4113911.html 作者很牛B.. 前言 一提到跟踪俩字,很 ...
- SQL Server自动化运维系列——关于邮件通知那点事(.Net开发人员的福利)
需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 邮件作为一种非常便利的预警实现方式,在及时性和易用性 ...
- SQL Server中关于跟踪(Trace)那点事
前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们的SQL Server数据库中“跟踪”也是无处不在的,如果我们利用好了跟踪技巧,就可以针对某些特定的场景做定向分析,找出充足的证据来破案. 简 ...
- 【转】SQL Server中关于跟踪(Trace)那点事
前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们的SQL Server数据库中“跟踪”也是无处不在的,如果我们利用好了跟踪技巧,就可以针对某些特定的场景做定向分析,找出充足的证据来破案. 简 ...
- SQL Server 文件自动增长那些事
方法 1. 把文件的增长设置为按照固定大小增长. 如filegrowth = 100MB; ------------------------------------------------------ ...
- SQL Server中关于跟踪(Trace)那点事(转载)
前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们的SQL Server数据库中“跟踪”也是无处不在的,如果我们利用好了跟踪技巧,就可以针对某些特定的场景做定向分析,找出充足的证据来破案. 简 ...
- SQL SERVER 无法正常连接的那些事
1.确保sqlserver服务正常运行. >一般可以从两个地方控制服务,一是系统自带的服务管理器,最快捷的方式是运行“services.msc”,二是使用sqlserver自带的“SQL Ser ...
- ASP.NET Core 中文文档 第二章 指南(4.5)使用 SQL Server LocalDB
原文:Working with SQL Server LocalDB 作者:Rick Anderson 翻译: 魏美娟(初见) 校对: 孟帅洋(书缘).张硕(Apple).许登洋(Seay) Appl ...
- Unity3d连接SQL Server数据库出现SocketException: 使用了与请求的协议不兼容的地址错误
这两天,同学问我Unity3d连接SQL Server的问题,当时我只是简单的说:“应该一样吧,就是那简单的几句啊”.之后他让我试了下,我才发现有问题了.故此写下一篇博客,要牢记这件事的教训,操作数据 ...
随机推荐
- TortoiseGit 与 Putty 配置冲突导致 Server refuse our key
tortoisegit是TortoiseSVN的Git版本,tortoisegit用于迁移TortoiseSVN到TortoiseGit,一直以来Git在Windows平台没有好用GUI客户端,现在t ...
- ReentrantLock源码解析——虽众但写
在看这篇文章时,笔者默认你已经看过AQS或者已经初步的了解AQS的内部过程. 先简单介绍一下ReentantLock,跟synchronized相同,是可重入的重量级锁.但是其用法则相当不同,首先 ...
- 【转载】卸载Anaconda教程
文章来源:https://docs.continuum.io/anaconda/install/uninstall/ 卸载Anaconda 要卸载Anaconda,您可以简单地删除该程序.这将留下一些 ...
- ios shell打包脚本 xcodebuild
#! /bin/bash project_path=$() project_config=Release output_path=~/Desktop build_scheme=YKTicketsApp ...
- Oracle 和SQL Server 中的SQL语句使用区别
最近开始接触Oracle,想要了解下同SQL Server使用时的区别.搜寻网上信息找到具体区别分类如下: 一.数据类型比较 类型名称 Oracle SQLServer 比较 字符数据类型 CHA ...
- python—异常处理try
写代码的时候会遇到各种各样的异常,那么代码就不会继续往下走了.比如说10除以0是错误的,因为除数不能为零学会捕捉异常,在异常出现的时候我们要做什么操作. 捕捉异常 d={} #例如定义字典 try: ...
- 11g数据库使用DBUA升级Exadata数据库至12c
DB Name: GRPSource DB: 11.2.0.3 Target DB: 12.1.0.2 11g数据库使用DBUA升级Exadata数据库至12c前提条件: 0.需要11g源数据库fu ...
- yum,rpm等失效,使用系统安装包ISO文件降级程序恢复系统
linux平台:REHL6.7 故障原因:由于不小心使用命令yum update nss误升级了工作平台中nss系列工具包导致系统中yum 和 rpm命令执行都报错. 由于yum rpm命令都不好用使 ...
- Redis对象——哈希(Hash)
哈希在很多编程语言中都有着很广泛的应用,而在Redis中也是如此,在redis中,哈希类型是指Redis键值对中的值本身又是一个键值对结构,形如value=[{field1,value1},...{f ...
- Step by Step!教你如何在k3s集群上使用Traefik 2.x
本文来自边缘计算k3s社区 作者简介 Cello Spring,瑞士人.从电子起步,拥有电子工程学位.尔后开始关注计算机领域,在软件开发领域拥有多年的工作经验. Traefik是一个十分可靠的云原生动 ...