SQL SERVER

Know something new

1. Create a database

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 

2. Create a table

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

Three. Create a stored procedure

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='123456' WHERE stuName='Robin';
END
GO

Four. Create a view

USE student;
GO
CREATE VIEW VIEW_NAME
AS
SELECT * FROM studentInfo;
GO

V. Create an index

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 

Six. Create a trigger

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 

Seven. Create a scalar function

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 

8. Create table-valued functions

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 

Nine. Declare cursor

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 = '123456'
      WHERE  stuId = @STUID

      PRINT @STUID

      FETCH NEXT FROM STU_CURSOR INTO @STUID
  END

CLOSE STU_CURID

DEALLOCATE STU_CURSOR

GO 

 

Guess you like

Origin www.cnblogs.com/vic-tory/p/12760871.html