sqlserver的学习成长之路,每一个技术的学习过程都是值得让人回味的,现在百度上关于sqlser的资料很多,但是都太杂,希望能为大家分享一点简单易懂的干货,跟大家一起进步学习。

一、建表

    1、创建表stu_paper(各种常用的类型的字段都有)

IF NOT EXISTS (SELECT * FROM SYSOBJECTS WHERE NAME = 'stu_paper' AND TYPE = 'U')
BEGIN
--问卷表
CREATE TABLE stu_paper(
P_ID int IDENTITY(,) primary key NOT NULL,
TITLE VARCHAR() default '' NOT NULL,
START_TIME datetime default getdate() NOT NULL,
SHOW_CONTENT int default NOT NULL,
USER_NUM bigint default NOT NULL,
FLAG int default NOT NULL ,
NTAG1 numeric(,),
)
END
GO

   2、创建表stu

IF NOT EXISTS (SELECT * FROM SYSOBJECTS WHERE NAME = 'stu' AND TYPE = 'U')
BEGIN
--问卷表
CREATE TABLE stu(
P_ID int IDENTITY(,) primary key NOT NULL,
TITLE VARCHAR() default '' NOT NULL,
START_TIME datetime default getdate() NOT NULL,
SHOW_CONTENT int default NOT NULL,
USER_NUM bigint default NOT NULL,
FLAG int default NOT NULL ,
NTAG1 numeric(,),
)
END
GO

二、为表stu_paper增加字段

 alter table dbo.stu_paper add age int default  not null;
alter table dbo.stu_paper add name VARCHAR() default '' not null;

三、修改表stu_paper中的字段name 的长度为varchar(256)

 alter table stu_paper  alter column name varchar();

四、存储过程

  1、创建存储过程,将将表stu_paper中数据同步到表stu中

 CREATE PROC [DBO].[PRO_STUPAPER]
AS
IF EXISTS(SELECT COUNT(*) FROM DBO.stu_paper)
BEGIN
DELETE FROM DBO.stu_paper;
INSERT INTO DBO.stu(TITLE,START_TIME,SHOW_CONTENT,USER_NUM,FLAG,NTAG1)
SELECT TITLE,START_TIME,SHOW_CONTENT,USER_NUM,FLAG,NTAG1 FROM DBO.stu_paper;
END
GO

  2、执行存储过程

 EXEC DBO.PRO_STUPAPER
GO

  3、通过创建存储过程建表

--创建建立3个表的存储过程
CREATE PROC [DBO].[CREATETABLE](@PITYPE TINYINT,@PIYM INT)
AS
--1-短信历史表;2-彩信历史表;3-短信上行历史表;
BEGIN
DECLARE @STR NVARCHAR(4000);
DECLARE @TABLENAME VARCHAR(16); IF @PITYPE=1
BEGIN
SET @TABLENAME='MTTASK'+CAST(@PIYM AS VARCHAR(6));
SET @STR='CREATE TABLE '+@TABLENAME+'(
ID BIGINT NOT NULL,
USERID VARCHAR(11) NOT NULL,
AREACODE INT NOT NULL DEFAULT ((0))
)'
END;
ELSE IF @PITYPE=2
BEGIN
SET @TABLENAME='MOTASK'+CAST(@PIYM AS VARCHAR(6));
SET @STR='CREATE TABLE '+@TABLENAME+'(
ID BIGINT NOT NULL,
MDAY INT NOT NULL,
AREACODE INT NOT NULL DEFAULT ((0))
)'
END;
ELSE
BEGIN
SET @TABLENAME='MRTASK'+CAST(@PIYM AS VARCHAR(6));
SET @STR='CREATE TABLE '+@TABLENAME+'(
ID BIGINT NOT NULL,
MDAY INT NOT NULL,
AREACODE INT NOT NULL DEFAULT ((0))
)'
END;
--动态执行sql语句
EXEC SP_EXECUTESQL @STR;
END;
--循环调用上面存储过程CREATETABLE
DECLARE @J INT,@SPTIME DATETIME,@PIYM VARCHAR(6),@PITYPE INT;
SET @J=0;
SET @SPTIME=GETDATE(); SET @J=0;
WHILE(@J < 48)
BEGIN
SET @PIYM=CONVERT(VARCHAR(6), DATEADD(MONTH,@J,GETDATE()), 112);
SET @PITYPE=1;
WHILE (@PITYPE<5)
BEGIN
BEGIN TRY
EXEC [DBO].[CREATETABLE] @PITYPE,@PIYM ;
END TRY
BEGIN CATCH
BREAK;
END CATCH
SET @PITYPE=@PITYPE+1;
END;
SET @J = @J+1;
END;
GO

五、sqlserver函数的运用  

  1、--2018-10-24 日期转换格式,获取日期前10位
     select CONVERT(VARCHAR(10),GETDATE(),120);

  2、--2018-12-24 14:17:36.230 当前日期增加两个月
           select DATEADD(MONTH,2,GETDATE());
      3、--哈哈哈   将变量显示转换为 varchar(10)类型
          SELECT CAST('哈哈哈' AS varchar(10))
  4、/**
     两者都可以执行动态sql
      sp_executesql 可以在动态 sql 中使用变量,并且将变量输出
      exec 则只能执行动态 sql 和 存储过程,也可以使用表变量,执行时需要加括号,唯一不足就是不可以输出变量
             */ 

CREATE PROC stu
as
BEGIN
DECLARE @STR NVARCHAR(4000);
SET @STR='select * from OT_WEI_TWCOUNT'
--执行sql语句
EXEC SP_EXECUTESQL @STR;
end; --执行该存储过程,进行查询 select * from OT_WEI_TWCOUNT
 EXEC stu;

六、sqlserver定时任务

  1、创建定时任务(即作业)

    参考网址:https://jingyan.baidu.com/article/b907e62790e89846e7891cc4.html?qq-pf-to=pcqq.c2c

  2、查看定时任务日志

    参考网址:https://jingyan.baidu.com/article/0f5fb099efaa2c6d8334eae5.html?qq-pf-to=pcqq.c2c

  

sqlserver学习_01的更多相关文章

  1. SQLServer学习笔记系列6

    一.写在前面的话 时间是我们每个人都特别熟悉的,但是到底它是什么,用什么来衡量,可能很多人会愣在那里.时间可以见证一切,也可以消磨一切,那些过往的点点滴滴可思可忆.回想往年清明节过后,在家乡的晚上总能 ...

  2. SQLServer学习笔记系列5

    一.写在前面的话 转眼又是一年清明节,话说“清明时节雨纷纷”,武汉的天气伴随着这个清明节下了一场暴雨,整个城市如海一样,朋友圈渗透着清明节武汉看海的节奏.今年又没有回老家祭祖,但是心里依然是怀念着那些 ...

  3. SQLServer学习笔记系列3

    一.写在前面的话 今天又是双休啦!生活依然再继续,当你停下来的时候,或许会突然显得不自在.有时候,看到一种东西,你会发现原来在这个社会上,优秀的人很多,默默 吃苦努力奋斗的人也多!星期五早上按时上班, ...

  4. SQLServer学习笔记系列2

    一.写在前面的话 继上一次SQLServer学习笔记系列1http://www.cnblogs.com/liupeng61624/p/4354983.html以后,继续学习Sqlserver,一步一步 ...

  5. SQLServer学习笔记<>相关子查询及复杂查询

    二.查询缺少值的查询 在这里我们加入要查询2008年每一天的订单有多少?首先我们可以查询下订单表的订单日期在2008年的所有订单信息. 1 select distinct orderdate,coun ...

  6. C++基础学习_01

    C++基础学习_01 基础知识:1.命名空间,2.IO流(输入输入),3.参数缺省,4.函数重载 1.命名空间 作用:对标识符的名称进行本地化,避免命名冲突 定义:namaspace space_na ...

  7. SQLServer 学习笔记之超详细基础SQL语句 Part 12(The End)

    Sqlserver 学习笔记 by:授客 QQ:1033553122 -----------------------接Part 11------------------- 现在,我们希望从 " ...

  8. SQLServer 学习笔记之超详细基础SQL语句 Part 11

    Sqlserver 学习笔记 by:授客 QQ:1033553122 -----------------------接Part 10------------------- DECLARE @myavg ...

  9. SQLServer 学习笔记之超详细基础SQL语句 Part 10

    Sqlserver 学习笔记 by:授客 QQ:1033553122 -----------------------接Part 9------------------- 删除约束的语法 ALTER T ...

随机推荐

  1. [HNOI2014]米特运输

    显然知道一个节点就可以推出整棵树 然而直接乘会爆longlong 所以考虑取log 最后排序算众数即可 # include <stdio.h> # include <stdlib.h ...

  2. [BZOJ1051] [HAOI2006] 受欢迎的牛 (强联通分量)

    Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这 种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也 ...

  3. HashMap中的resize以及死链的情况

    之前我已经写过关于HashMap的内容了:http://www.cnblogs.com/wang-meng/p/7545725.html 我们都知道HashMap是线程不安全的, 如果多线程来访问会有 ...

  4. lamp进阶

    前言:上一文说到,在lamp上简单的部署应用程序,wordpress和phpmyadmin 稍稍回顾一下,动态页面apche发往后端类PHP程序,其PHP本身提供能与后端mysql进行交互的驱动,使得 ...

  5. 查看 SELinux状态|关闭SELinux

    查看SELinux状态: 1./usr/sbin/sestatus -v      ##如果SELinux status参数为enabled即为开启状态 SELinux status:         ...

  6. springboot 整合 MongoDB 实现登录注册,html 页面获取后台参数的方法

    springboot简介: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不 ...

  7. MySQL多数据源笔记5-ShardingJDBC实战

    Sharding-JDBC集分库分表.读写分离.分布式主键.柔性事务和数据治理与一身,提供一站式的解决分布式关系型数据库的解决方案. 从2.x版本开始,Sharding-JDBC正式将包名.Maven ...

  8. PHP方法实现1-9数列中添加‘+’,‘-’或'',使和为100,并输出数列

    今天收到个题目:编写一个在1,2,3,4,5,6,7,8,9(顺序不能变)数字之间插入 + 或- 或什么都不插入,使得计算结果总是100的程序,并输出所有的可能性.例如 1+2+34-5+67-8+9 ...

  9. nginx里的sticky的作用

    1.Sticky工作原理 : Sticky是nginx的一个模块,它是基于cookie的一种nginx的负载均衡解决方案,通过分发和识别cookie,来使同一个客户端的请求落在同一台服务器上,默认标识 ...

  10. C语言第十次博客作业--结构体

    一.PTA实验作业 题目1: 结构体数组按总分排序 1. 本题PTA提交列表 2. 设计思路 求出每名学生的总分 定义i,j循环变量 for i=0 to n for j=0 to 3 p[i].su ...