sqlserver學習_01

         sqlserver的學習成長之路,每個技術的學習過程都是值得讓人回味的,如今百度上關於sqlser的資料不少,可是都太雜,但願能爲你們分享一點簡單易懂的乾貨,跟你們一塊兒進步學習。html

 1、建表sql

    一、建立表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

   二、建立表stusqlserver

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

2、爲表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;

3、修改表stu_paper中的字段name 的長度爲varchar(256)spa

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

4、存儲過程日誌

  一、建立存儲過程,將將表stu_paper中數據同步到表stu中code

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

  二、執行存儲過程server

1 EXEC DBO.PRO_STUPAPER
2 GO

  三、經過建立存儲過程建表htm

--建立創建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

5、sqlserver函數的運用  

  一、--2018-10-24 日期轉換格式,獲取日期前10位
     select CONVERT(VARCHAR(10),GETDATE(),120);

  二、--2018-12-24 14:17:36.230 當前日期增長兩個月
           select DATEADD(MONTH,2,GETDATE());
      三、--哈哈哈   將變量顯示轉換爲 varchar(10)類型
          SELECT CAST('哈哈哈' AS varchar(10))
  四、/**
     二者均可以執行動態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;

 

6、sqlserver定時任務

  一、建立定時任務(即做業)

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

   二、查看定時任務日誌

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

相關文章
相關標籤/搜索