清理数据库中的数据
本文关键字:数据 数据库 | 更新日期: 2023-09-27 18:30:57
我在我的项目中使用 ORM telerik 开放访问。我可以使用它来创建数据并将其添加到我的数据库中。
现在我想清理数据库中的所有数据。我可以通过从每个表中删除数据来做到这一点,但这需要很长的代码。我有谷歌如何使用DBContext清理它,但一无所获。还有另一种方法可以清理数据库但不循环为数据库中的每个表调用删除函数?
(仅限 SQL SERVER) 可以使用以下 sql 脚本来清理数据库中的数据:
/* 1.禁用所有约束和触发器*/执行sp_MSforeachtable '改变表?不检查约束全部'执行sp_MSforeachtable '改变表?禁用全部触发"
/*阿拉伯数字。删除所有表数据 */执行sp_MSforeachtable"删除?"
/* 3.启用所有约束和触发器 */执行sp_MSforeachtable '改变表?全部选中约束" 执行sp_MSforeachtable '改变表?启用全部触发"
/* 4.重置表标识 */exec sp_MSforeachtable 'IF OBJECTPROPERTY(OBJECT_ID(''?''), ''TableHasIdentity'') = 1 BEGIN DBCC CHECKIDENT (''?'',RESEED,0) END'
- 从数据库创建脚本以进行删除和创建。
- 使用您采用的代码创建相同的存储过程。
- 从代码隐藏执行存储过程。
删除并创建查询将是这样的。.这是一个示例。
/* 对象:表 [dbo]。员工列表] 脚本日期:2013-09-12 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