mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
161 lines
3.8 KiB
Transact-SQL
161 lines
3.8 KiB
Transact-SQL
|
|
CREATE TABLE authors_docs (
|
|
pers_id int NOT NULL ,
|
|
doc_id int NOT NULL
|
|
)
|
|
GO
|
|
|
|
CREATE TABLE documents (
|
|
id int IDENTITY (1, 1) NOT NULL ,
|
|
abstract varchar (255) NULL ,
|
|
title varchar (255) NULL ,
|
|
body binary (255) NULL
|
|
)
|
|
GO
|
|
|
|
CREATE TABLE institutes (
|
|
id int IDENTITY (1, 1) NOT NULL ,
|
|
name varchar (255) NOT NULL
|
|
)
|
|
GO
|
|
|
|
|
|
CREATE TABLE persons (
|
|
id int IDENTITY (1, 1) NOT NULL ,
|
|
name varchar (255) NULL
|
|
)
|
|
GO
|
|
|
|
CREATE TABLE phones (
|
|
id int IDENTITY (1, 1) NOT NULL ,
|
|
phone varchar (255) NOT NULL ,
|
|
pers_id int NOT NULL
|
|
)
|
|
GO
|
|
|
|
ALTER TABLE authors_docs WITH NOCHECK ADD
|
|
CONSTRAINT PK_authors_docs PRIMARY KEY
|
|
(
|
|
pers_id,
|
|
doc_id
|
|
)
|
|
GO
|
|
|
|
ALTER TABLE documents WITH NOCHECK ADD
|
|
CONSTRAINT PK_documents PRIMARY KEY
|
|
(
|
|
id
|
|
)
|
|
GO
|
|
|
|
ALTER TABLE institutes WITH NOCHECK ADD
|
|
CONSTRAINT PK_institutes PRIMARY KEY
|
|
(
|
|
id
|
|
)
|
|
GO
|
|
|
|
|
|
ALTER TABLE persons WITH NOCHECK ADD
|
|
CONSTRAINT PK_persons PRIMARY KEY
|
|
(
|
|
id
|
|
)
|
|
GO
|
|
|
|
ALTER TABLE phones WITH NOCHECK ADD
|
|
CONSTRAINT PK_phones PRIMARY KEY
|
|
(
|
|
id
|
|
)
|
|
GO
|
|
|
|
SET QUOTED_IDENTIFIER OFF SET ANSI_NULLS ON
|
|
GO
|
|
|
|
CREATE PROCEDURE add_phone @pers_id int, @phone varchar(255) AS
|
|
INSERT INTO ldap.phones (pers_id,phone) VALUES (@pers_id,@phone)
|
|
GO
|
|
|
|
CREATE PROCEDURE create_person @@keyval int OUTPUT AS
|
|
INSERT INTO ldap.persons (name) VALUES ('');
|
|
set @@keyval=(SELECT MAX(id) FROM ldap.persons)
|
|
GO
|
|
|
|
CREATE PROCEDURE delete_person @keyval int AS
|
|
DELETE FROM ldap.phones WHERE pers_id=@keyval;
|
|
DELETE FROM ldap.authors_docs WHERE pers_id=@keyval;
|
|
DELETE FROM ldap.persons WHERE id=@keyval;
|
|
GO
|
|
|
|
CREATE PROCEDURE create_org @@keyval int OUTPUT AS
|
|
INSERT INTO ldap.institutes (name) VALUES ('');
|
|
set @@keyval=(SELECT MAX(id) FROM ldap.institutes)
|
|
GO
|
|
|
|
CREATE PROCEDURE create_document @@keyval int OUTPUT AS
|
|
INSERT INTO ldap.documents (title) VALUES ('');
|
|
set @@keyval=(SELECT MAX(id) FROM ldap.documents)
|
|
GO
|
|
|
|
CREATE PROCEDURE delete_org @keyval int AS
|
|
DELETE FROM ldap.institutes WHERE id=@keyval;
|
|
GO
|
|
|
|
CREATE PROCEDURE delete_document @keyval int AS
|
|
DELETE FROM ldap.authors_docs WHERE doc_id=@keyval;
|
|
DELETE FROM ldap.documents WHERE id=@keyval;
|
|
GO
|
|
|
|
CREATE PROCEDURE delete_phone @keyval int,@phone varchar(64) AS
|
|
DELETE FROM ldap.phones WHERE pers_id=@keyval AND phone=@phone;
|
|
GO
|
|
|
|
CREATE PROCEDURE set_person_name @keyval int, @new_name varchar(255) AS
|
|
UPDATE ldap.persons SET name=@new_name WHERE id=@keyval;
|
|
GO
|
|
|
|
CREATE PROCEDURE set_org_name @keyval int, @new_name varchar(255) AS
|
|
UPDATE ldap.institutes SET name=@new_name WHERE id=@keyval;
|
|
GO
|
|
|
|
CREATE PROCEDURE set_doc_title @keyval int, @new_title varchar(255) AS
|
|
UPDATE ldap.documents SET title=@new_title WHERE id=@keyval;
|
|
GO
|
|
|
|
CREATE PROCEDURE set_doc_abstract @keyval int, @new_abstract varchar(255) AS
|
|
UPDATE ldap.documents SET abstract=@new_abstract WHERE id=@keyval;
|
|
GO
|
|
|
|
CREATE PROCEDURE make_author_link @keyval int, @author_dn varchar(255) AS
|
|
DECLARE @per_id int;
|
|
SET @per_id=(SELECT keyval FROM ldap.ldap_entries
|
|
WHERE objclass=1 AND dn=@author_dn);
|
|
IF NOT (@per_id IS NULL)
|
|
INSERT INTO ldap.authors_docs (doc_id,pers_id) VALUES (@keyval,@per_id);
|
|
GO
|
|
|
|
CREATE PROCEDURE make_doc_link @keyval int, @doc_dn varchar(255) AS
|
|
DECLARE @doc_id int;
|
|
SET @doc_id=(SELECT keyval FROM ldap.ldap_entries
|
|
WHERE objclass=2 AND dn=@doc_dn);
|
|
IF NOT (@doc_id IS NULL)
|
|
INSERT INTO ldap.authors_docs (pers_id,doc_id) VALUES (@keyval,@doc_id);
|
|
GO
|
|
|
|
CREATE PROCEDURE del_doc_link @keyval int, @doc_dn varchar(255) AS
|
|
DECLARE @doc_id int;
|
|
SET @doc_id=(SELECT keyval FROM ldap.ldap_entries
|
|
WHERE objclass=2 AND dn=@doc_dn);
|
|
IF NOT (@doc_id IS NULL)
|
|
DELETE FROM ldap.authors_docs WHERE pers_id=@keyval AND doc_id=@doc_id;
|
|
GO
|
|
|
|
CREATE PROCEDURE del_author_link @keyval int, @author_dn varchar(255) AS
|
|
DECLARE @per_id int;
|
|
SET @per_id=(SELECT keyval FROM ldap.ldap_entries
|
|
WHERE objclass=1 AND dn=@author_dn);
|
|
IF NOT (@per_id IS NULL)
|
|
DELETE FROM ldap.authors_docs WHERE doc_id=@keyval AND pers_id=@per_id;
|
|
GO
|