sqlserver学习_01

         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(1,1) primary key NOT NULL,
        TITLE VARCHAR(200) default '' NOT NULL,                  
        START_TIME datetime default getdate() NOT NULL,   
        SHOW_CONTENT int default 0 NOT NULL,             
        USER_NUM bigint default 0  NOT NULL,         
        FLAG int default 0 NOT NULL ,             
        NTAG1 numeric(10,4),
    )
    END
    GO

   2、创建表stu

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

二、为表stu_paper增加字段

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

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

1 alter table stu_paper  alter column name varchar(256);

四、存储过程

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

1 CREATE PROC [DBO].[PRO_STUPAPER]
2 AS
3 IF EXISTS(SELECT COUNT(*) FROM DBO.stu_paper)
4 BEGIN
5     DELETE FROM DBO.stu_paper;
6     INSERT INTO DBO.stu(TITLE,START_TIME,SHOW_CONTENT,USER_NUM,FLAG,NTAG1)
7             SELECT TITLE,START_TIME,SHOW_CONTENT,USER_NUM,FLAG,NTAG1 FROM DBO.stu_paper;
8 END
9 GO

  2、执行存储过程

1 EXEC DBO.PRO_STUPAPER
2 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

  

原文地址:https://www.cnblogs.com/ouyy/p/8715560.html