清理数据库中的数据

时间:2013-09-12 03:56:38

标签: c# telerik-open-access data-cleansing

我在项目中使用ORM telerik开放访问。我可以用它来创建和添加数据到我的数据库。

现在我想清理数据库中的所有数据。我可以通过删除每个表中的数据来完成它,但它需要很长的代码。我有谷歌如何使用DBContext清理它,什么都没找到。还有另一种方法来清理数据库,但没有循环来调用我的数据库中每个表的删除功能吗?

2 个答案:

答案 0 :(得分:1)

(仅限SQL SERVER)您可以使用以下sql脚本来清​​理数据库中的数据:

/ * 1.禁用所有约束和触发器* / exec sp_MSforeachtable'ALTER TABLE? NOCHECK CONSTRAINT ALL' exec sp_MSforeachtable'ALTER TABLE?禁止触发所有'

/ * 2.删除所有表格数据* / exec sp_MSforeachtable'DELETE?'

/ * 3.启用所有约束和触发器* / exec sp_MSforeachtable'ALTER TABLE?检查约束所有'  exec sp_MSforeachtable'ALTER TABLE? ENABLE TRIGGER ALL'

/ * 4.重置表格身份* / exec sp_MSforeachtable'如果OBJECTPROPERTY(OBJECT_ID(''?''),''TableHasIdentity'')= 1 BEGIN DBCC CHECKIDENT(''''',RESEED,0)END'

答案 1 :(得分:0)

  1. 从数据库创建脚本以进行删除和创建。
  2. 使用您已采用的代码为其创建存储过程。
  3. 从后面的代码执行存储过程..
  4. 删除和创建查询将是这样的......这是一个示例..

    / * 对象:表[dbo]。[EmployeeList]脚本日期:09/12/2013 09:35:01 * /

    IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[EmployeeList]') AND type in (N'U'))
    DROP TABLE [dbo].[EmployeeList]
    GO
    
    USE [dbname]
    GO
    
    /****** Object:  Table [dbo].[EmployeeList]    Script Date: 09/12/2013 09:35:01 ******/
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    SET ANSI_PADDING ON
    GO
    
    CREATE TABLE [dbo].[EmployeeList](
        [FirstName] [nvarchar](50) NULL,
        [LastName] [nvarchar](50) NULL,
        [Category] [nvarchar](50) NOT NULL,
        [id] [int] IDENTITY(1,1) NOT NULL,
        [alphanumeric] [varchar](50) NULL,
    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