相关疑难解决方法(0)

如何截断外键约束表?

为什么没有一个TRUNCATEmygroup工作?即使ON DELETE CASCADE SET我得到了:

错误1701(42000):无法截断外键约束中引用的表(mytest.instance,CONSTRAINT instance_ibfk_1FOREIGN KEY(GroupID)REFERENCES mytest.mygroup(ID))

drop database mytest;
create database mytest;
use mytest;

CREATE TABLE mygroup (
   ID    INT NOT NULL AUTO_INCREMENT PRIMARY KEY
) ENGINE=InnoDB;

CREATE TABLE instance (
   ID           INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
   GroupID      INT NOT NULL,
   DateTime     DATETIME DEFAULT NULL,

   FOREIGN KEY  (GroupID) REFERENCES mygroup(ID) ON DELETE CASCADE,
   UNIQUE(GroupID)
) ENGINE=InnoDB;
Run Code Online (Sandbox Code Playgroud)

mysql truncate constraints foreign-keys dml

601
推荐指数
9
解决办法
46万
查看次数

实体框架.删除表中的所有行

如何使用Entity Framework快速删除表中的所有行?

我目前正在使用:

var rows = from o in dataDb.Table
           select o;
foreach (var row in rows)
{
    dataDb.Table.Remove(row);
}
dataDb.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

但是,执行需要很长时间.

还有其他选择吗?

c# sql linq entity-framework

261
推荐指数
13
解决办法
22万
查看次数

如何使用TSQL截断数据库中的所有表?

我有一个数据库的测试环境,我想在测试周期开始时用新数据重新加载.我对重建整个数据库不感兴趣 - 只需简单地"重新设置"数据.

使用TSQL从所有表中删除所有数据的最佳方法是什么?是否有可以使用的系统存储过程,视图等?我不想为每个表手动创建和维护truncate table语句 - 我希望它是动态的.

t-sql sql-server

197
推荐指数
7
解决办法
28万
查看次数

SQL Server - 事务回滚错误?

我们有一个客户端应用程序在SQL Server 2005上运行一些SQL,如下所示:

BEGIN TRAN;
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
COMMIT TRAN;
Run Code Online (Sandbox Code Playgroud)

它由一个长字符串命令发送.

如果其中一个插入失败,或者命令的任何部分失败,SQL Server是否会回滚事务?如果它没有回滚,我是否必须发送第二个命令才能回滚?

我可以给出关于我正在使用的api和语言的细节,但我认为SQL Server应该对任何语言做出相同的响应.

sql sql-server transactions sql-server-2005

181
推荐指数
5
解决办法
18万
查看次数

禁用外键约束,仍然不能截断表?(SQL Server 2005)

我有一个名为PX_Child的表,它在PX_Parent上有一个外键.我想暂时禁用此FK约束,以便我可以截断PX_Parent.我不确定这是怎么回事.

我试过这些命令

ALTER TABLE PX_Child NOCHECK CONSTRAINT ALL

ALTER TABLE PX_Parent NOCHECK CONSTRAINT ALL

(truncate commands)

ALTER TABLE PX_Child CHECK CONSTRAINT ALL

ALTER TABLE PX_Parent CHECK CONSTRAINT ALL
Run Code Online (Sandbox Code Playgroud)

但截断仍然告诉我,由于外键约束,它不能截断PX_Parent.我在网上看了一遍,似乎找不到我做错了什么,对不起这个问题的基本性质.

sql-server constraints foreign-keys

29
推荐指数
3
解决办法
7万
查看次数

SQL中的逗号分隔列表

如何在SQL中循环逗号分隔列表?我有一个ID列表,我需要将这些ID传递给存储过程.我不能改变存储过程.我需要弄清楚如何为每个id执行SP.给我一些想法,我可以从那里继续.

谢谢.

sql sql-server sql-server-2008

29
推荐指数
1
解决办法
3万
查看次数

在SQL Server 2008的"From"子句中使用表名称的变量

我有一个UDF从表中查询数据.但是,该表需要作为参数定义.例如我不能:

选择*来自[dbo].[TableA]

我需要这样的东西:

选择*来自[dbo].[@ TableName]

上面的行不起作用,UDF也禁止我将查询设置为字符串并调用exec().我可以在一个过程中执行此操作,但我也无法从UDF调用该过程.

有没有人知道如何在没有某种大规模切换声明的情况下在UDF中实现这一目标?

.net sql t-sql sql-server

5
推荐指数
3
解决办法
3万
查看次数

禁用所有表上的外键约束不起作用

我尝试了很多命令来禁用我的数据库中的表约束来截断所有表,但现在它仍然给我同样的错误:

无法截断表'',因为它是由FOREIGN KEY约束引用的.

我试试

EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"
EXEC sp_MSforeachtable "TRUNCATE TABLE ?"
Run Code Online (Sandbox Code Playgroud)

我为每张桌子试过这个

ALTER TABLE [Table Name] NOCHECK CONSTRAINT ALL  
truncate table [Table Name]
ALTER TABLE [Table Name] CHECK CONSTRAINT ALL  
Run Code Online (Sandbox Code Playgroud)

每次我有上一条错误消息.我怎么解决这个问题?

sql sql-server-2005

3
推荐指数
1
解决办法
9228
查看次数

由于外键,TRUNCATE TABLE查询无法在SSIS中执行

我有一个表包含2个字段的表.在我的另一个数据库中,我有一个参与者表(也有2列).参与者表我必须在人员表中插入值.但在每次插入之前,我都希望截断人员表.

我已经尝试将Execute Sql任务链接到数据流任务.但是它显示出存在主外键关系的错误.

sql ssis sql-server-2008

1
推荐指数
1
解决办法
9665
查看次数

无法截断表 - SQL Server

我收到以下错误。

无法删除对象“tablename”,因为它被 FOREIGN KEY 约束引用。

这意味着有我想要截断的表的引用。然后我使用以下查询删除所有表的所有约束。

use mydb

EXEC sp_MSforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"

truncate table mytable.
Run Code Online (Sandbox Code Playgroud)

但它不起作用,请帮助。

database sql-server

1
推荐指数
1
解决办法
2157
查看次数