当前位置:首页 » 操作系统 » 删除数据库代码

删除数据库代码

发布时间: 2022-06-26 00:45:25

⑴ 如何删除数据库中所有数据

sql Server中清空所有数据表中的记录
清空所有数据表中的记录:
复制代码 代码如下:
exec sp_msforeachtable @Command1 ='truncate table ?'

删除所有数据表:
复制代码 代码如下:
exec sp_msforeachtable 'delete N''?'''

清空SQL Server数据库中所有表数据的方法(有约束的情况)
其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入死循环,二是这里使用了微软未正式公开的sp_MSForEachTable存储过程。
也许很多读者朋友都经历过这样的事情:要在开发数据库基础上清理一个空库,但由于对数据库结构缺乏整体了解,在删除一个表的记录时,删除不了,因为可能有外键约束,一个常见的数据库结构是一个主表,一个子表,这种情况下一般都得先删除子表记录,再删除主表记录。
说道删除数据记录,往往马上会想到的是delete和truncate语句,但在遇到在两个或多个表之间存在约束的话,这两个语句可能都会失效,而且最要命的是这两个命令都只能一次操作一个表。那么真正遇到要删除SQL Server数据库中所有记录时,该怎么办呢?有两个选择:
1.按照先后顺序逐个删除,这个方法在表非常多的情况下显得很不现实,即便是表数量不多,但约束比较多时,你还是要花费大量的时间和精力去研究其间的约束关系,然后找出先删哪个表,再删哪个表,最后又删哪个表。
2.禁用所有约束,删除所有数据,最后再启用约束,这样就不用花时间和精力去研究什么约束了,只需要编写一个简单的存储过程就可以自动完成这个任务。
复制代码 代码如下:

CREATE PROCEDURE sp_DeleteAllData
AS
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'
EXEC sp_MSForEachTable 'DELETE FROM ?'
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL'
EXEC sp_MSFOREACHTABLE 'SELECT * FROM ?'
GO

从这两个选择中不难看出第二个选择是最简单有效的了,那么在使用第二个选择时,具体该怎么实施呢?
首先得编写代码循环检查所有的表,这里我推荐一个存储过程sp_MSForEachTable,因为在微软的官方文档中没有对这个存储过程有描述,很多开发人员也许都还未曾听说,所以你在互联网上搜索得到的解决办法大多很复杂,也许有的人会认为,既然没有官方文档,这个存储过程可能会不稳定,打心理上会排斥它,但事实并非如此。下面来先看一个完整的脚本
这个脚本创建了一个命名为sp_DeleteAllData的存储过程,前面两行语句分别禁用约束和触发器,第三条语句才是真正地删除所有数据,接下里的语句分别还原约束和触发器,最后一条语句是显示每个表中的记录,当然这条语句也可以不要,我只是想确认一下是否清空了所有表而已。
你可以在任何数据库上运行这个存储过程,当然不要在生成数据库上运行,可别怪我没告诉你!不管怎样,还是先备份一下数据库,使用备份数据库还原,然后再运行该存储过程,呵呵,即使是一个大型数据库,也要不多长时间,你的数据库就成一个空库了

第三种方法:TRUNCATE TABLE

在sql server数据库中快速删除记录,清空表若要删除表中的所有行,则 TRUNCATE TABLE 语句是一种快速、无日志记录的方法。TRUNCATE TABLE 与不含有 WHERE 子句的 DELETE 语句在功能上相同。但是,TRUNCATE TABLE 速度更快,并且使用更少的系统资源和事务日志资源。

与 DELETE 语句相比,TRUNCATE TABLE 具有以下优点:

所用的事务日志空间较少。

DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放用于存储表数据的数据页来删除数据,并且在事务日志中只记录页释放。

使用的锁通常较少。

当使用行锁执行 DELETE 语句时,将锁定表中各行以便删除。TRUNCATE TABLE 始终锁定表和页,而不是锁定各行。

如无例外,在表中不会留有任何页。

执行 DELETE 语句后,表仍会包含空页。例如,必须至少使用一个排他 (LCK_M_X) 表锁,才能释放堆中的空表。如果执行删除操作时没有使用表锁,表(堆)中将包含许多空页。对于索引,删除操作会留下一些空页,尽管这些页会通过后台清除进程迅速释放。

与 DELETE 语句相同,使用 TRUNCATE TABLE 清空的表的定义与其索引和其他关联对象一起保留在数据库中。

⑵ 如何用javascript代码删除数据库里的数据

IE 浏览器可以使用ActiveX adodb

function connection()
{

var i=2;
var dbname=name;
var url = "property.xml";
var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
xmldoc.load(url);
var property=xmldoc.getElementsByTagName("provider");
var dbpath=property[i].getElementsByTagName("dbpath")[0].firstChild.data;
var dbprovider=property[i].getElementsByTagName("dbprovider")[0].firstChild.data;
var dbuser=property[i].getElementsByTagName("dbuser")[0].firstChild.data;
var dbpassword=property[i].getElementsByTagName("dbpassword")[0].firstChild.data;
try{
var conn = new ActiveXObject("ADODB.Connection");
//var constr="Provider="+dbprovider+";Data Source="+dbpath+";User ID="+dbuser+";Jet OLEDB:Database Password="+dbpassword+";";
var constr="Provider="+dbprovider+";Data Source="+dbpath+";User ID="+dbuser+";Jet OLEDB:Database Password="+dbpassword+";";
conn.open(constr);
return conn;

}
catch(e){
alert("can not be connectting!");
conn.close;
return null;

}
finally{

}
}
function dbreadresult(strsql)
{
var strsql=strsql;
var i=0;
var result="";
try{
var conn=connection();
var rs = new ActiveXObject("ADODB.Recordset");
rs.open(strsql,conn,1,1);
var rowcount=rs.RecordCount;
var colcount=rs.Fields.Count;
while(!rs.eof)
{
result=result+rs.Fields(0);
for(j=1;j<colcount;j++)

if(rs.Fields(j).Type==7){

dbdate=new Date(rs.Fields(j));

if((dbdate==null)||(dbdate=="null")||(dbdate < new Date(2001,1,1))||(dbdate=="")){result=result+"\\t"+" ";}

else{result=result+"\\t"+datetostring(dbdate);}

}
else{

var dbdatastr=rs.Fields(j)+" ";

dbdatastr=dbdatastr.trim();

if((dbdatastr==null)||(dbdatastr=="null")||(dbdatastr=="")||(dbdatastr==" ")){result=result+"\\t"+" ";}

else{result=result+"\\t"+rs.Fields(j);}

}
result=result+"\
";
rs.moveNext();
}
return result;

}
catch(e){
alert(e.message);
return null;

}
finally{
rs.close;
conn.close;

}
}

⑶ .net删除数据库记录代码

写一个操作数据库的类,类中包括对数据库的增、删、改、查操作。然后在要用到的地方调用写的数据库操作类中的方法。 在执行操作时,将所要执行的SQL语句传入写的数据库操作类中,调用就可以了。 private static string conStr = “”;//数据库连接字符串//获得数据库连接
private static SqlConnection connection;
public static SqlConnection Connection
{
get
{
if (connection == null)
{
connection = new SqlConnection(conStr);
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Closed)
{
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Broken)
{
connection.Close();
connection.Open();
}
return connection;
}
} //执行增,删,改,返回影响行数 sql 执行的删除语句 type 命令的类型 如果是语句则用 Command.text 如果是存储过程 则用 CommandType.StoredProcere params 是传入的参数
public static int ExecuteNonQuery(string sql, CommandType type, SqlParameter[] parms)
{
SqlCommand com = new SqlCommand(sql, Connection);
com.CommandType = type;
Parms(com, parms);
return com.ExecuteNonQuery();
} private static void Parms(SqlCommand com, SqlParameter[] param)
{
if (param != null)
{
foreach (SqlParameter p in param)
{
com.Parameters.Add(p);
}
}
} 在类中调用上面地方法string sql = “delete from 数据库表名 where 条件=@Id“; SqlParameter[] parm = new SqlParameter[]
{
new SqlParameter("@Id",传入的参数值 };
SqlHelper.ExecuteNonQuery(sql.ToString(), CommandType.Text, parm);
} 这样就可以了

⑷ 各位大哥,求在datagridview中删除选中行,并删除数据库中数据的代码!

你是选中行,能获取到该行的id号吧,然后你直接就执行删除数据库记录就行了
,你可以把删除写个存储过程,传进去id删除该记录,然后你重新对datagridview进行数据绑定就可以了

⑸ 在C#程序中如何删除数据库

是SQL
Server的话
我知道数据库如果要手动删除的话需要
停止或暂停数据库服务、或者先分离数据库
再删除物理文件~
我只做过删除数据库数据的(用T-Sql语句)
并没用删除过数据库文件、
如果C#代码能执行此操作的话、那C#肯定有个类能够访问数据库服务并能够对服务做操作
而我做的时候只访问过数据并没有操作过数据库引擎
所以具体是什么类我就不清楚了

⑹ 求使用sql语句创建和删除数据库的代码

1、使用create
database创建数据库test
create
database
test
on
primary
(
name
=
'test',
filename='c:\program
files\microsoft
sql
server\mssql\data\test.mdf',
size=10240kb,
maxsize
=
unlimited,
filegrowth
=
10%)
log
on
(
name='test_log',
filename='c:\program
files\microsoft
sql
server\mssql\data\test_log.ldf',
size=1024kb,
maxsize
=
5120kb,
filegrowth
=
1024kb
)
go
2.
使用alter
database语句修改数据库
例4-3将两个数据文件和一个事务日志文件添加到test数据库中。
程序清单如下:
alter
database
test
add
file
(name
=
test1,
filename='c:\program
files\microsoft
sql
server\mssql\data\test1.ndf',
size
=
5mb,
maxsize
=
100mb,
filegrowth
=
5mb),
(name
=
test2,
filename='c:\program
files\microsoft
sql
server\mssql\data\test2.ndf',
size
=
3mb,
maxsize
=
10mb,
filegrowth
=
1mb)
go
alter
database
test
add
log
file
(
name
=
testlog1,
filename='c:\program
files\microsoft
sql
server\mssql\data\testlog1.ldf',
size
=
5mb,
maxsize
=
100mb,
filegrowth
=
5mb)
go
3、重命名test为demo
sp_renamedb
'test','demo'
4、删除数据库
drop
database
demo

热点内容
服务器网卡硬件型号怎么看 发布:2024-05-19 18:36:41 浏览:665
修改pve服务器ip 发布:2024-05-19 18:31:52 浏览:468
微信密码忘记了如何取出里面的钱 发布:2024-05-19 18:27:35 浏览:329
vs2005反编译 发布:2024-05-19 18:26:34 浏览:363
ug启动语言脚本 发布:2024-05-19 18:25:57 浏览:874
缓存服务器技术 发布:2024-05-19 18:25:56 浏览:885
androidlistview横向 发布:2024-05-19 18:21:02 浏览:704
多看ftp 发布:2024-05-19 18:11:31 浏览:543
给定一个算法 发布:2024-05-19 17:50:08 浏览:864
恋爱生物种离线缓存 发布:2024-05-19 17:49:15 浏览:579