works:programmer:db-other:create-example

Пример как создавать таблицы MSSQL

--Sql Server 2014 Express Edition
--Batches are separated by 'go'
 
 
 
SELECT @@version AS 'sql server version';
 
IF OBJECT_ID('dbo.employee', 'U') IS NOT NULL
    DROP TABLE dbo.employee;
 
CREATE TABLE [employee] (
    [EmployeeID] BIGINT IDENTITY(1,1),
    [Name] nvarchar(1024) NOT NULL,
    [Pass] CHAR(32) NOT NULL,
    CONSTRAINT PK_Employee_EmployeeID PRIMARY KEY ([EmployeeID]),
    CONSTRAINT UK_Employee_Name UNIQUE NONCLUSTERED ([Name])
);
 
CREATE TABLE [access] (
    [AccessID] BIGINT IDENTITY(1,1),
    [EmployeeID] BIGINT NOT NULL,
    [Permission] nvarchar(2048) NOT NULL,
    [GrantPerm] bit NOT NULL DEFAULT 0,
    CONSTRAINT PK_Access_AccessID PRIMARY KEY (AccessID),
    CONSTRAINT FK_Access_EmployeeID FOREIGN KEY (EmployeeID)
    REFERENCES dbo.employee (EmployeeID)
    ON DELETE CASCADE
    ON UPDATE CASCADE
)
 
INSERT INTO [employee] ( [Name] , [Pass] ) VALUES ( 'TestUser' , CONVERT(VARCHAR(32),HashBytes('MD5',CONCAT('TestUser','secret')),2) );
 
SELECT * FROM [employee];
 
INSERT INTO [access] ( [EmployeeID], [Permission], [GrantPerm] ) VALUES ((SELECT TOP 1 EmployeeID FROM [employee] WHERE [Name] = 'TestUser') , '*', 0);
INSERT INTO [access] ( [EmployeeID], [Permission], [GrantPerm] ) VALUES ((SELECT TOP 1 EmployeeID FROM [employee] WHERE [Name] = 'TestUser') , 'member:profile:own', 1);
INSERT INTO [access] ( [EmployeeID], [Permission], [GrantPerm] ) VALUES ((SELECT TOP 1 EmployeeID FROM [employee] WHERE [Name] = 'TestUser') , 'member:store:comments:*', 1);
INSERT INTO [access] ( [EmployeeID], [Permission], [GrantPerm] ) VALUES ((SELECT TOP 1 EmployeeID FROM [employee] WHERE [Name] = 'TestUser') , 'member:update:comments:own', 1);
 
SELECT access.*, employee.[Name] FROM [access]
LEFT JOIN [employee] ON access.[EmployeeID] = employee.[EmployeeID];
works/programmer/db-other/create-example.txt · Last modified: 2019/08/20 13:02 by Chugreev Eugene