我在项目中使用ORM telerik开放访问。我可以用它来创建和添加数据到我的数据库。
现在我想清理数据库中的所有数据。我可以通过删除每个表中的数据来完成它,但它需要很长的代码。我有谷歌如何使用DBContext清理它,什么都没找到。还有另一种方法来清理数据库,但没有循环来调用我的数据库中每个表的删除功能吗?
答案 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)
删除和创建查询将是这样的......这是一个示例..
/ * 对象:表[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