if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SP_{table_source_name}_Exists]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[SP_{table_source_name}_Exists]
GO

/*
'' ============================================================================================
'' 项目名称：{fyp_title}
'' 项目版本：{fyp_version}
'' 项目描述：{fyp_description}
'' 文件名称：{table_source_name}
'' 文件描述：存储过程文件 判断 {table_name}{value_match_check value1="{table_description}" value2="" extend_match="unequal"} （{table_description}）{/value_match_check} 表中记录是否存在
'' 公司名称：{fyp_company}
'' 开发人员：{fyp_designer}
'' 创建日期：{fyp_created_date}
'' 修订日期：{system_date_time format="yyyy-MM-dd hh:mm:ss"}
'' 版权信息：{fyp_copyright}

'' 项目升级时需读取以下生成工具的版权信息
'' 生成工具：{fysoft_name}
'' 当前版本：{fysoft_version}
'' 官方网站：{fysoft_website}
'' ============================================================================================
*/

CREATE PROCEDURE dbo.SP_{table_source_name}_Exists
{fields_loop type="3" separator=","}
    @{field_source_name} {field_datatype_name}{value_match_check value1="{field_datatype_name}" value2="nvarchar|varchar|nchar|char" extend_match="in2"}({field_maxlength}){/value_match_check}{/fields_loop}
AS
    DECLARE @iCount int
    SELECT @iCount = count(*) FROM [{table_name}] WHERE {fields_loop type="3" separator=' and '}[{field_name}] = @{field_source_name}{/fields_loop}
    IF @iCount > 0
        Set @iCount = 1

    RETURN @iCount
GO


if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SP_{table_source_name}_Add]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[SP_{table_source_name}_ADD]
GO

/*
'' ============================================================================================
'' 项目名称：{fyp_title}
'' 项目版本：{fyp_version}
'' 项目描述：{fyp_description}
'' 文件名称：{table_source_name}
'' 文件描述：存储过程文件 向 {table_name}{value_match_check value1="{table_description}" value2="" extend_match="unequal"} （{table_description}）{/value_match_check} 表中新增一条记录
'' 公司名称：{fyp_company}
'' 开发人员：{fyp_designer}
'' 创建日期：{fyp_created_date}
'' 修订日期：{system_date_time format="yyyy-MM-dd hh:mm:ss"}
'' 版权信息：{fyp_copyright}

'' 项目升级时需读取以下生成工具的版权信息
'' 生成工具：{fysoft_name}
'' 当前版本：{fysoft_version}
'' 官方网站：{fysoft_website}
'' ============================================================================================
*/
CREATE PROCEDURE SP_{table_source_name}_Add
    --需保存字段信息的值
{fields_loop type="11" separator=","}
    @{field_source_name} {field_datatype_name}{value_match_check value1="{field_datatype_name}" value2="nvarchar|varchar|nchar|char" extend_match="in2"}({field_maxlength}){/value_match_check}{/fields_loop}
AS
BEGIN TRANSACTION
BEGIN
    INSERT INTO [{table_name}]
    ({fields_loop type="11" separator=", "}[{field_name}]{/fields_loop})
    VALUES
    ({fields_loop type="11" separator=", "}@{field_source_name}{/fields_loop})
END
COMMIT TRANSACTION
IF @@TRANCOUNT > 0 ROLLBACK TRAN
RETURN
GO


if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SP_{table_source_name}_Update]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[SP_{table_source_name}_Update]
GO

/*
'' ============================================================================================
'' 项目名称：{fyp_title}
'' 项目版本：{fyp_version}
'' 项目描述：{fyp_description}
'' 文件名称：{table_source_name}
'' 文件描述：存储过程文件 更新 {table_name}{value_match_check value1="{table_description}" value2="" extend_match="unequal"} （{table_description}）{/value_match_check} 表中的一条记录
'' 公司名称：{fyp_company}
'' 开发人员：{fyp_designer}
'' 创建日期：{fyp_created_date}
'' 修订日期：{system_date_time format="yyyy-MM-dd hh:mm:ss"}
'' 版权信息：{fyp_copyright}

'' 项目升级时需读取以下生成工具的版权信息
'' 生成工具：{fysoft_name}
'' 当前版本：{fysoft_version}
'' 官方网站：{fysoft_website}
'' ============================================================================================
*/
CREATE PROCEDURE SP_{table_source_name}_Update
{fields_loop type="-1" separator=","}
    @{field_source_name} {field_datatype_name}{value_match_check value1="{field_datatype_name}" value2="nvarchar|varchar|nchar|char" extend_match="in2"}({field_maxlength}){/value_match_check}{/fields_loop}
AS
BEGIN TRANSACTION
BEGIN
    UPDATE [{table_name}] SET {fields_loop type="11" separator=","}
    {field_bracket_name} = @{field_source_name}{/fields_loop}
    WHERE ({fields_loop type="3" separator=" And "}[{field_name}] = @{field_source_name}{/fields_loop})
END
COMMIT TRANSACTION
IF @@TRANCOUNT > 0 ROLLBACK TRAN
RETURN
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SP_{table_source_name}_Delete]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[SP_{table_source_name}_Delete]
GO

/*
'' ============================================================================================
'' 项目名称：{fyp_title}
'' 项目版本：{fyp_version}
'' 项目描述：{fyp_description}
'' 文件名称：{table_source_name}
'' 文件描述：存储过程文件 删除 {table_name}{value_match_check value1="{table_description}" value2="" extend_match="unequal"} （{table_description}）{/value_match_check} 表中的一条记录
'' 公司名称：{fyp_company}
'' 开发人员：{fyp_designer}
'' 创建日期：{fyp_created_date}
'' 修订日期：{system_date_time format="yyyy-MM-dd hh:mm:ss"}
'' 版权信息：{fyp_copyright}

'' 项目升级时需读取以下生成工具的版权信息
'' 生成工具：{fysoft_name}
'' 当前版本：{fysoft_version}
'' 官方网站：{fysoft_website}
'' ============================================================================================
*/
CREATE PROCEDURE SP_{table_source_name}_Delete
{fields_loop type="3" separator=","}
    @{field_source_name} {field_datatype_name}{value_match_check value1="{field_datatype_name}" value2="nvarchar|varchar|nchar|char" extend_match="in2"}({field_maxlength}){/value_match_check}{/fields_loop}
AS
BEGIN TRANSACTION
BEGIN
    DELETE FROM [{table_name}]
    WHERE {fields_loop type="3" separator=' and '}[{field_name}] = @{field_source_name}{/fields_loop}
END
COMMIT TRANSACTION
IF @@TRANCOUNT > 0 ROLLBACK TRAN
RETURN
GO


if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SP_{table_source_name}_GetModel]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[SP_{table_source_name}_GetModel]
GO
/*
'' ============================================================================================
'' 项目名称：{fyp_title}
'' 项目版本：{fyp_version}
'' 项目描述：{fyp_description}
'' 文件名称：{table_source_name}
'' 文件描述：存储过程文件 返回 {table_name}{value_match_check value1="{table_description}" value2="" extend_match="unequal"} （{table_description}）{/value_match_check} 表中一条记录的详细信息，以建立实体对象
'' 公司名称：{fyp_company}
'' 开发人员：{fyp_designer}
'' 创建日期：{fyp_created_date}
'' 修订日期：{system_date_time format="yyyy-MM-dd hh:mm:ss"}
'' 版权信息：{fyp_copyright}

'' 项目升级时需读取以下生成工具的版权信息
'' 生成工具：{fysoft_name}
'' 当前版本：{fysoft_version}
'' 官方网站：{fysoft_website}
'' ============================================================================================
*/
CREATE PROCEDURE SP_{table_source_name}_GetModel
{fields_loop type="3" separator=","}
    @{field_source_name} {field_datatype_name}{value_match_check value1="{field_datatype_name}" value2="nvarchar|varchar|nchar|char" extend_match="in2"}({field_maxlength}){/value_match_check}{/fields_loop}
AS
BEGIN
    SELECT 
    {fields_loop type="-1" separator=","}{field_name}{/fields_loop}
    FROM [{table_name}]
    WHERE {fields_loop type="3" separator=' and '}[{field_name}] = @{field_source_name}{/fields_loop}
END
GO


if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SP_{table_source_name}_GetList]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[SP_{table_source_name}_GetList]
GO
/*
'' ============================================================================================
'' 项目名称：{fyp_title}
'' 项目版本：{fyp_version}
'' 项目描述：{fyp_description}
'' 文件名称：{table_source_name}
'' 文件描述：存储过程文件 返回 {table_name}{value_match_check value1="{table_description}" value2="" extend_match="unequal"} （{table_description}）{/value_match_check} 表中的全部记录信息
'' 公司名称：{fyp_company}
'' 开发人员：{fyp_designer}
'' 创建日期：{fyp_created_date}
'' 修订日期：{system_date_time format="yyyy-MM-dd hh:mm:ss"}
'' 版权信息：{fyp_copyright}

'' 项目升级时需读取以下生成工具的版权信息
'' 生成工具：{fysoft_name}
'' 当前版本：{fysoft_version}
'' 官方网站：{fysoft_website}
'' ============================================================================================
*/
CREATE PROCEDURE SP_{table_source_name}_GetList
AS
BEGIN
    SELECT 
    {fields_loop type="-1" separator=","}{field_name}{/fields_loop}
    FROM [{table_name}]
END
GO
