无法在数据库中创建EmployeeDocuments表

时间:2016-09-26 12:23:05

标签: c# sql database sql-server-2014-express

我正在尝试创建数据库和相关表。一切都有效,除了'EmployeeDocuments'表(数据库和4个表创建)。它给出了一个错误:

  

数据库中已有一个名为“FK_Employees_Companies1”的对象。

我的代码如下:

private void UserEntryForm_Activated(object sender, EventArgs e)
    {
        CheckIfDBExist();
    }
    int i;

    private void CheckIfDBExist()
    {

        SqlConnection tmpConn = new SqlConnection("server=(local)\\SQLEXPRESS;user=sa;pwd=123");

        string sqlCreateDBQuery = string.Format("if not exists (select name from sys.databases where name = 'Devrimer_v2222')create database Devrimer_v2222");

        SqlCommand sqlCmd = new SqlCommand(sqlCreateDBQuery, tmpConn);

        string constr = Tools.Baglanti.ConnectionString.ToString();

        try
        {
            tmpConn.Open();
            int sonuc = sqlCmd.ExecuteNonQuery();

            if (sonuc != 0) 
            {
                tmpConn.Close();

                string query = "if not exists(select * from sys.tables where name = 'Companies' ";
                query += ")";
                query += "CREATE TABLE [dbo].[Companies]([Id][int] IDENTITY(1, 1) NOT NULL,";
                query += "[Name][nvarchar](100) NULL,";
                query += "[Adress][nvarchar](500) NULL,";
                query += "[TelNo][char](20) NULL,";
                query += "[Active][bit] NOT NULL CONSTRAINT[DF_Companies_Active] DEFAULT((1)),";
                query += "CONSTRAINT[PK_Companies] PRIMARY KEY CLUSTERED([Id] ASC ) WITH(PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,";
                query += "IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,";
                query += "ALLOW_PAGE_LOCKS = ON) ON[PRIMARY] ) ON[PRIMARY]";
                query += " SET ANSI_PADDING OFF";


                using (SqlConnection con = new SqlConnection(constr))
                {
                    using (SqlCommand cmd = new SqlCommand(query))
                    {
                        cmd.Connection = con;
                        con.Open();
                        cmd.ExecuteNonQuery();
                        con.Close();
                    }
                }

                string docQuery = "if not exists(select * from sys.tables where name = 'Documents' ";
                docQuery += ")";
                docQuery += "CREATE TABLE [dbo].[Documents]([Id] [int] IDENTITY(1,1) NOT NULL,";
                docQuery += "[Name] [nvarchar](50) NULL,";
                docQuery += "[Description] [nvarchar](500) NULL,";
                docQuery += "[ValidPeriod] [int] NULL,";
                docQuery += "[PeriodType] [nchar](10) NULL,";
                docQuery += "[Active] [bit] NOT NULL CONSTRAINT [DF_Documents_Active]  DEFAULT ((1)), ";
                docQuery += "CONSTRAINT [PK_Documents] PRIMARY KEY CLUSTERED (  [Id] ASC )WITH (PAD_INDEX = OFF, ";
                docQuery += "STATISTICS_NORECOMPUTE = OFF, ";
                docQuery += "IGNORE_DUP_KEY = OFF, ";
                docQuery += "ALLOW_ROW_LOCKS = ON, ";
                docQuery += " ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]";

                using (SqlConnection con = new SqlConnection(constr))
                {
                    using (SqlCommand cmd = new SqlCommand(docQuery))
                    {
                        cmd.Connection = con;
                        con.Open();
                        cmd.ExecuteNonQuery();
                        con.Close();
                    }
                }
                string EmpQuery = "if not exists(select * from sys.tables where name = 'Employees' ";
                EmpQuery += ")";
                EmpQuery += "CREATE TABLE [dbo].[Employees]( [Id] [int] IDENTITY(1,1) NOT NULL,";
                EmpQuery += "[Name] [nvarchar](50) NULL,";
                EmpQuery += "[SurName] [nvarchar](50) NULL,";
                EmpQuery += "[Title] [nvarchar](50) NULL,";
                EmpQuery += "[Gender] [tinyint] NULL,";
                EmpQuery += "[MaritalStatus] [tinyint] NULL,";
                EmpQuery += "[Tckn] [char](11) NULL,";
                EmpQuery += "[ReportTo] [int] NULL,";
                EmpQuery += "[BirthDate] [date] NULL, ";
                EmpQuery += "[TelNo] [char](20) NULL, ";
                EmpQuery += "[Adress] [nvarchar](500) NULL, ";
                EmpQuery += "[Email] [nvarchar](250) NULL, ";
                EmpQuery += "[CompanyID] [int] NULL,";
                EmpQuery += "[StartWorkingDate] [date] NULL, ";
                EmpQuery += "[Active] [bit] NOT NULL CONSTRAINT [DF_Employees_Active]  DEFAULT ((1)), ";
                EmpQuery += " CONSTRAINT [PK_Employees] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, ";
                EmpQuery += "STATISTICS_NORECOMPUTE = OFF, ";
                EmpQuery += "IGNORE_DUP_KEY = OFF, ";
                EmpQuery += "ALLOW_ROW_LOCKS = ON, ";
                EmpQuery += "ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] ";
                EmpQuery += ";";
                EmpQuery += "SET ANSI_PADDING OFF ";
                EmpQuery += "ALTER TABLE [dbo].[Employees]  WITH CHECK ADD  CONSTRAINT [FK_Employees_Companies1] FOREIGN KEY([CompanyID]) REFERENCES [dbo].[Companies] ([Id]) ";
                EmpQuery += ";";
                EmpQuery += "ALTER TABLE [dbo].[Employees] CHECK CONSTRAINT [FK_Employees_Companies1] ";

                using (SqlConnection con = new SqlConnection(constr))
                {
                    using (SqlCommand cmd = new SqlCommand(EmpQuery))
                    {
                        cmd.Connection = con;
                        con.Open();
                        cmd.ExecuteNonQuery();
                        con.Close();
                    }
                }

                string userQuery = "if not exists(select * from sys.tables where name = 'Users' ";
                userQuery += ")";
                userQuery += "CREATE TABLE [dbo].[Users](   [Id] [int] IDENTITY(1,1) NOT NULL, ";
                userQuery += "[EmployeID] [int] NULL, ";
                userQuery += "[UserName] [nvarchar](50) NULL, ";
                userQuery += "[Password] [nchar](10) NULL, ";
                userQuery += "[Active] [bit] NOT NULL CONSTRAINT [DF_Users_Aktif]  DEFAULT ((1)), ";
                userQuery += " CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, ";
                userQuery += "STATISTICS_NORECOMPUTE = OFF, ";
                userQuery += "IGNORE_DUP_KEY = OFF, ";
                userQuery += "ALLOW_ROW_LOCKS = ON,";
                userQuery += "ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] ";

                using (SqlConnection con = new SqlConnection(constr))
                {
                    using (SqlCommand cmd = new SqlCommand(userQuery))
                    {
                        cmd.Connection = con;
                        con.Open();
                        cmd.ExecuteNonQuery();
                        con.Close();
                    }
                }

                string docEmpQuery = "if not exists(select * from sys.tables where name = 'EmployeeDocuments' ";
                docEmpQuery += ")";
                docEmpQuery += "CREATE TABLE [dbo].[EmployeeDocuments]( [EmployeeID] [int] NOT NULL, ";
                docEmpQuery += "[DocumentID] [int] NOT NULL, ";
                docEmpQuery += "[GivenDate] [date] NULL, ";
                docEmpQuery += "[LastValidDate] [date] NULL, ";
                docEmpQuery += "CONSTRAINT [PK_EmployeeDocuments] PRIMARY KEY CLUSTERED ( [EmployeeID] ASC, ";
                docEmpQuery += "[DocumentID] ASC )WITH (PAD_INDEX = OFF, ";
                docEmpQuery += "STATISTICS_NORECOMPUTE = OFF, ";
                docEmpQuery += "IGNORE_DUP_KEY = OFF, ";
                docEmpQuery += "ALLOW_ROW_LOCKS = ON,";
                docEmpQuery += "ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]";
                docEmpQuery += ";";
                docEmpQuery += "ALTER TABLE [dbo].[EmployeeDocuments]  WITH CHECK ADD  CONSTRAINT [FK_EmployeeDocuments_Documents1] FOREIGN KEY([DocumentID])REFERENCES [dbo].[Documents] ([Id]) ";
                docEmpQuery += ";";
                docEmpQuery += "ALTER TABLE [dbo].[EmployeeDocuments] CHECK CONSTRAINT [FK_EmployeeDocuments_Documents1] ";
                docEmpQuery += "; ";
                docEmpQuery += "ALTER TABLE [dbo].[EmployeeDocuments]  WITH CHECK ADD  CONSTRAINT [FK_EmployeeDocuments_Employees1] FOREIGN KEY([EmployeeID]) REFERENCES [dbo].Employees] ([Id]) ";
                docEmpQuery += ";";
                docEmpQuery += "ALTER TABLE [dbo].[EmployeeDocuments] CHECK CONSTRAINT [FK_EmployeeDocuments_Employees1] ";

                using (SqlConnection con = new SqlConnection(constr))
                {
                    using (SqlCommand cmd = new SqlCommand(docEmpQuery))
                    {
                        cmd.Connection = con;
                        con.Open();
                        cmd.ExecuteNonQuery();
                        con.Close();
                    }
                }
            }
        }

        catch (Exception hata)
        {
            MessageBox.Show(string.Format(sqlCmd.CommandText.ToString() + "\n\nHata: " + hata.Message.ToString()));
        }
        finally
        {
            tmpConn.Close();
        }
    }
}

3 个答案:

答案 0 :(得分:1)

这是因为你在创建表之前检查表是否存在,但是你总是尝试创建约束而不管它们是否存在,你有类似的东西:

IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'Employees')
    CREATE TABLE dbo.Employees (....)
ALTER TABLE dbo.Employees WITH CHECK ADD CONSTRAINT ....

使用这种语法,只有紧随IF之后的语句才是有条件的,一个简单的例子就是:

IF 1 = 0
PRINT '1';
PRINT '2';

这将简单地打印" 2"。如果要有条件地执行多个语句,则需要将它们包装在语句块中(BEGIN/END

IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'Employees')
BEGIN
    CREATE TABLE dbo.Employees (....)
    ALTER TABLE dbo.Employees WITH CHECK ADD CONSTRAINT ....
END

对于它的价值,您可以使用逐字字符串文字来使所有内容更易读(并且更容易编辑)。 e.g。

string query = @"IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'Employees')
                BEGIN
                    CREATE TABLE dbo.Employees (....)
                    ALTER TABLE dbo.Employees WITH CHECK ADD CONSTRAINT ....
                END;";

答案 1 :(得分:0)

尝试更改约束名称,似乎是在数据库中使用相同名称创建的

答案 2 :(得分:0)

我使用了MyDbUtils.exe并导出了所有过程和触发器,并包含了表和数据库创建的语法, 它工作得非常好;

我使用了一个方法(SQLTEXTexec())来运行所有文本字符串:

然后;  使用CheckIfDBExist())方法创建数据库和表;  到目前为止工作正常  ;

private void SQLTEXTexec(string sql, SqlConnection conn)
        {
            string sqlBatch = string.Empty;
            SqlCommand cmd = new SqlCommand(string.Empty, conn);
            conn.Open();
            sql += "\nGO";   // make sure last batch is executed.
            try
            {
                foreach (string line in sql.Split(new string[2] { "\n", "\r" }, StringSplitOptions.RemoveEmptyEntries))
                {
                    if (line.ToUpperInvariant().Trim() == "GO")
                    {
                        cmd.CommandText = sqlBatch;
                        cmd.ExecuteNonQuery();
                        sqlBatch = string.Empty;
                    }
                    else
                    {
                        sqlBatch += line + "\n";
                    }
                }
            }
            finally
            {
                conn.Close();
            }
    private void CheckIfDBExist()
        {

            SqlConnection tmpConn = new SqlConnection("server=(local)\\SQLEXPRESS;user=sa;pwd=123");
            //("if not exists (select name from sys.databases where name = 'Devrimer_v2222' ) create database Devrimer_v2222");

            string sqlCreateDBQuery = string.Format("if not exists (select name from sys.databases where name = 'Devrimer_v2222')create database Devrimer_v2222");

            SqlCommand sqlCmd = new SqlCommand(sqlCreateDBQuery, tmpConn);

            string constr = Tools.Baglanti.ConnectionString.ToString();

            try
            {
                tmpConn.Open();

                int sonuc = sqlCmd.ExecuteNonQuery();

                if (sonuc != 0) // database i silince çalışacak...


                {

                    tmpConn.Close();

                    string query = @"if not exists (select name from sys.databases where name = 'Devrimer_v2222')
create database Devrimer_v2222 
GO

use Devrimer_v2222 
if not exists(select * from sys.tables where name = 'Companies')

CREATE TABLE [dbo].[Companies](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Name] [nvarchar](100) NULL,
    [Adress] [nvarchar](500) NULL,
    [TelNo] [char](20) NULL,
    [Active] [bit] NOT NULL CONSTRAINT [DF_Companies_Active]  DEFAULT ((1)),
 CONSTRAINT [PK_Companies] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO 

USE Devrimer_v2222
GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[prc_Companies_Delete]') AND type = N'P') 
exec('CREATE PROCEDURE [dbo].[prc_Companies_Delete] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER proc [dbo].[prc_Companies_Delete]
@Id int
as 
delete Companies
where 
Id=@Id
GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[prc_Companies_Insert]') AND type = N'P') 
exec('CREATE PROCEDURE [dbo].[prc_Companies_Insert] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER proc [dbo].[prc_Companies_Insert]
--@Id int, primary kolonu almıyoruz.
@Name nvarchar(100),
@Adress nvarchar(500),
@TelNo char(20),
@Active bit
as
insert Companies 
values (@Name,@Adress,@TelNo,@Active)
GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[prc_Companies_Select]') AND type = N'P') 
exec('CREATE PROCEDURE [dbo].[prc_Companies_Select] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER  proc [dbo].[prc_Companies_Select]
as
select * from Companies where Active=1
GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[prc_Companies_Update]') AND type = N'P') 
exec('CREATE PROCEDURE [dbo].[prc_Companies_Update] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER proc [dbo].[prc_Companies_Update]
@Id int,
@Name nvarchar(100),
@Adress nvarchar(500),
@TelNo char(20),
@Active bit 
as
update Companies 
set
--Id=@Id, 
Name=@Name, 
Adress=@Adress,
TelNo=@TelNo,
Active=@Active
where
Id=@Id
GO

USE Devrimer_v2222

GO

INSERT INTO [dbo].[Companies]
           ([Name]
           ,[Adress]
           ,[TelNo]
           ,[Active])
     VALUES
           ('Anagold','Erzincan',0543456,1)
GO


use Devrimer_v2222
if not exists(select * from sys.tables where name = 'Documents')
begin
CREATE TABLE [dbo].[Documents](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Name] [nvarchar](50) NULL,
    [Description] [nvarchar](500) NULL,
    [ValidPeriod] [int] NULL,
    [PeriodType] [nchar](10) NULL,
    [Active] [bit] NOT NULL CONSTRAINT [DF_Documents_Active]  DEFAULT ((1)),
 CONSTRAINT [PK_Documents] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
END
GO

use Devrimer_v2222
GO


IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[prc_Documents_Delete]') AND type = N'P') 
exec('CREATE PROCEDURE [dbo].[prc_Documents_Delete] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER proc [dbo].[prc_Documents_Delete]
@Id int
as 
delete Documents
where 
Id=@Id
GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[prc_Documents_Insert]') AND type = N'P') 
exec('CREATE PROCEDURE [dbo].[prc_Documents_Insert] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER proc [dbo].[prc_Documents_Insert]
--@Id int, primary kolonu almıyoruz.
@Name nvarchar(50),
@Description nvarchar(500),
@ValidPeriod int,
@periodType char(10),
@Active bit
as
insert Documents 
values (@Name,@Description,@ValidPeriod,@periodType,@Active)
GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[prc_Documents_Select]') AND type = N'P') 
exec('CREATE PROCEDURE [dbo].[prc_Documents_Select] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER  proc [dbo].[prc_Documents_Select]
as
select * from Documents where Active=1
GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[prc_Documents_Update]') AND type = N'P') 
exec('CREATE PROCEDURE [dbo].[prc_Documents_Update] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER proc [dbo].[prc_Documents_Update]
@Id int,
@Name nvarchar(50),
@Description nvarchar(500),
@ValidPeriod int,
@PeriodType nchar(10),
@Active bit 
as
update Documents 
set
--Id=@Id, 
Name=@Name, 
Description=@Description,
ValidPeriod=@ValidPeriod,
PeriodType=@PeriodType,
Active=@Active
where
Id=@Id
GO

use Devrimer_v2222
GO

if not exists(select * from sys.tables where name = 'Employees')
begin
CREATE TABLE [dbo].[Employees](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Name] [nvarchar](50) NULL,
    [SurName] [nvarchar](50) NULL,
    [Title] [nvarchar](50) NULL,
    [Gender] [tinyint] NULL,
    [MaritalStatus] [tinyint] NULL,
    [Tckn] [char](11) NULL,
    [ReportTo] [int] NULL,
    [BirthDate] [date] NULL,
    [TelNo] [char](20) NULL,
    [Adress] [nvarchar](500) NULL,
    [Email] [nvarchar](250) NULL,
    [CompanyID] [int] NULL,
    [StartWorkingDate] [date] NULL,
    [Active] [bit] NOT NULL CONSTRAINT [DF_Employees_Active]  DEFAULT ((1)),
 CONSTRAINT [PK_Employees] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
END

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[Employees]  WITH CHECK ADD  CONSTRAINT [FK_Employees_Companies1] FOREIGN KEY([CompanyID])
REFERENCES [dbo].[Companies] ([Id])
GO

ALTER TABLE [dbo].[Employees] CHECK CONSTRAINT [FK_Employees_Companies1]
GO
use Devrimer_v2222
GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[prc_Employees_Delete]') AND type = N'P') 
exec('CREATE PROCEDURE [dbo].[prc_Employees_Delete] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER proc [dbo].[prc_Employees_Delete]
@Id int
as 
delete Employees
where 
Id=@Id
GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[prc_Employees_Insert]') AND type = N'P') 
exec('CREATE PROCEDURE [dbo].[prc_Employees_Insert] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER proc [dbo].[prc_Employees_Insert]
--@Id int, primary kolonu almıyoruz.
@Name nvarchar(50),
@SurName nvarchar(50),
@Title nvarchar(50),
@Gender char(10),
@MaritalStatus char(10),
@Tckn char(11),
@ReportTo nvarchar(50),
@BirthDate date,
@TelNo char(20),
@Adress nvarchar(500),
@Email nvarchar(250),
@CompanyID int,
@StartWorkingDate date,
@Active bit
as
insert Employees 
values (@Name,@SurName,@Title,@Gender,@MaritalStatus,@Tckn,@ReportTo,@BirthDate,
@TelNo,@Adress,@Email,@CompanyID,@StartWorkingDate,@Active)
GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[prc_Employees_Select]') AND type = N'P') 
exec('CREATE PROCEDURE [dbo].[prc_Employees_Select] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER proc [dbo].[prc_Employees_Select]
as
Select
Id,
Name,
SurName,
Title,

case MaritalStatus
when 1 then 'Married'
when 2 then 'Single' 
end as MaritalStatus,

case Gender
when 1 then 'Male'
when 2 then 'Female'
end as Gender,

Tckn,
ReportTo,
BirthDate,
TelNo,
Adress,
Email,
CompanyID,
StartWorkingDate

from Employees where Active = 1
GO

use Devrimer_v2222
GO
INSERT INTO [dbo].[Employees]
           ([Name]
           ,[SurName]
           ,[Title]
           ,[Gender]
           ,[MaritalStatus]
           ,[Tckn]
           ,[ReportTo]
           ,[BirthDate]
           ,[TelNo]
           ,[Adress]
           ,[Email]
           ,[CompanyID]
           ,[StartWorkingDate]
           ,[Active])
     VALUES
           ('Özgür','Acar','MadenMühendisi',1,1,12345,1,'01.03.1974',1234,'Adres','oo@c.c',1,'01.03.2002',1)
GO
use Devrimer_v2222

if not exists(select * from sys.tables where name = 'Users')
begin
CREATE TABLE [dbo].[Users](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [EmployeID] [int] NULL,
    [UserName] [nvarchar](50) NULL,
    [Password] [nchar](10) NULL,
    [Active] [bit] NOT NULL CONSTRAINT [DF_Users_Aktif]  DEFAULT ((1)),
 CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
END
GO
USE [Devrimer_v2222]
GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[prc_Users_Delete]') AND type = N'P') 
exec('CREATE PROCEDURE [dbo].[prc_Users_Delete] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER proc [dbo].[prc_Users_Delete]
@Id int
as 
delete Users
where 
Id=@Id
GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[prc_Users_Entry]') AND type = N'P') 
exec('CREATE PROCEDURE [dbo].[prc_Users_Entry] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER proc [dbo].[prc_Users_Entry]
@unm nvarchar (50),
@pas nvarchar (15)
as
select * from Users
where UserName=@unm and Password=@pas and Active=1
GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[prc_Users_Insert]') AND type = N'P') 
exec('CREATE PROCEDURE [dbo].[prc_Users_Insert] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER proc [dbo].[prc_Users_Insert]
@EmployeID int,
@UserName nvarchar (50),
@Password nvarchar (10),
@Active bit
as
insert Users
values (@EmployeID, @UserName,@Password,@Active)
GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[prc_Users_Select]') AND type = N'P') 
exec('CREATE PROCEDURE [dbo].[prc_Users_Select] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER proc [dbo].[prc_Users_Select]
as
select * from Users where Active=1
GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[prc_Users_Update]') AND type = N'P') 
exec('CREATE PROCEDURE [dbo].[prc_Users_Update] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER proc [dbo].[prc_Users_Update]
@Id int,
@EmployeID int,
@UserName nvarchar(50),
@Password nvarchar(50),
@Active bit
as
update Users 
set
--Id=@Id, 
EmployeID=@EmployeID, 
UserName=@UserName,
Password=@Password

where
Id=@Id
GO
use Devrimer_v2222
GO


INSERT INTO [dbo].[Users]
           ([EmployeID]
           ,[UserName]
           ,[Password]
           ,[Active])
     VALUES
           (1,1,1,1)
GO

use Devrimer_v2222
if not exists(select * from sys.tables where name = 'EmployeeDocuments')
begin
CREATE TABLE [dbo].[EmployeeDocuments](
    [EmployeeID] [int] NOT NULL,
    [DocumentID] [int] NOT NULL,
    [GivenDate] [date] NULL,
    [LastValidDate] [date] NULL,
 CONSTRAINT [PK_EmployeeDocuments] PRIMARY KEY CLUSTERED 
(
    [EmployeeID] ASC,
    [DocumentID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
END
GO

ALTER TABLE [dbo].[EmployeeDocuments]  WITH CHECK ADD  CONSTRAINT [FK_EmployeeDocuments_Documents1] FOREIGN KEY([DocumentID])
REFERENCES [dbo].[Documents] ([Id])
GO

ALTER TABLE [dbo].[EmployeeDocuments] CHECK CONSTRAINT [FK_EmployeeDocuments_Documents1]
GO
use Devrimer_v2222
GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[prc_EmployeeDocuments_Delete]') AND type = N'P') 
exec('CREATE PROCEDURE [dbo].[prc_EmployeeDocuments_Delete] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER proc [dbo].[prc_EmployeeDocuments_Delete]
@EmployeID int,
@DocumentID int
as 
delete EmployeeDocuments
where 
DocumentID=@DocumentID and EmployeeID=@EmployeID
GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[prc_EmployeeDocuments_Insert]') AND type = N'P') 
exec('CREATE PROCEDURE [dbo].[prc_EmployeeDocuments_Insert] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER proc [dbo].[prc_EmployeeDocuments_Insert]

@EmployeeID int,
@DocumentID int,
@GivenDate date,
@LastValidDate date
as
insert EmployeeDocuments  
values (@EmployeeID,@DocumentID,@GivenDate,@LastValidDate)
GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[prc_EmployeeDocuments_Select]') AND type = N'P') 
exec('CREATE PROCEDURE [dbo].[prc_EmployeeDocuments_Select] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER proc [dbo].[prc_EmployeeDocuments_Select]
as
select * from EmployeeDocuments
GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[prc_EmployeeDocuments_Update]') AND type = N'P') 
exec('CREATE PROCEDURE [dbo].[prc_EmployeeDocuments_Update] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER proc [dbo].[prc_EmployeeDocuments_Update]
@EmployeeID int,
@DocumentID int,
@GivenDate date,
@LastValidDate date
as
update EmployeeDocuments 
set
--Id=@Id, 
EmployeeID=@EmployeeID, 
DocumentID=@DocumentID,
GivenDate=@GivenDate,
LastValidDate=@LastValidDate

where
@EmployeeID=@EmployeeID
GO

use Devrimer_v2222

IF  EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[trg_Delete_Companies]')) 
DROP TRIGGER [dbo].[trg_Delete_Companies]
GO
create trigger [dbo].[trg_Delete_Companies]
on [dbo].[Companies]
instead of delete
as
declare @Id int
select @Id= Id from deleted -- 1. Atama yöntemi
set @Id =(select Id from deleted) -- 2. Atama Yöntemi - tek kayıt varsa 

update Companies set Active=0 where Id=@Id
GO

IF  EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[trg_Delete_Documents]')) 
DROP TRIGGER [dbo].[trg_Delete_Documents]
GO
create trigger [dbo].[trg_Delete_Documents]
on [dbo].[Documents]
instead of delete
as
declare @Id int
select @Id= Id from deleted -- 1. Atama yöntemi
set @Id =(select Id from deleted) -- 2. Atama Yöntemi - tek kayıt varsa 

update Documents set Active=0 where Id=@Id
GO

IF  EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[trg_Delete_Employees]')) 
DROP TRIGGER [dbo].[trg_Delete_Employees]
GO
create trigger [dbo].[trg_Delete_Employees]
on [dbo].[Employees]
instead of delete
as
declare @Id int
select @Id= Id from deleted -- 1. Atama yöntemi
set @Id =(select Id from deleted) -- 2. Atama Yöntemi - tek kayıt varsa 

update Employees set Active=0 where Id=@Id
GO

IF  EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[trg_Delete_Users]')) 
DROP TRIGGER [dbo].[trg_Delete_Users]
GO
create trigger [dbo].[trg_Delete_Users]
on [dbo].[Users]
instead of delete
as
declare @Id int
--select @Id= Id from deleted -- 1. Atama yöntemi
set @Id =(select Id from deleted) -- 2. Atama Yöntemi - tek kayıt varsa 

update Users set Active=0 where Id=@Id ";

                    SqlConnection con = Tools.Baglanti;
                    SQLTEXTexec(query, con);
                }
            }


            catch (Exception hata)
            {
              //  MessageBox.Show(string.Format(sqlCmd.CommandText.ToString() + "\n\nHata: " + hata.Message.ToString()));
            }
            finally
            {
                tmpConn.Close();
            }


        }
    }