【问题标题】:What's equivalent to TRUNCATE TABLE in SQL Server?什么相当于 SQL Server 中的 TRUNCATE TABLE?
【发布时间】:2011-10-19 01:34:21
【问题描述】:

我正在寻找等同于TRUNCATE TABLE的东西

我如何使用 SQL Server 2005 做到这一点?

提前致谢!

【问题讨论】:

  • TRUNCATE TABLE 在 SQL 2005 中不起作用?
  • 我不明白。您还可以在 sql-server 中使用 TRUNCATE TABLE。有问题吗?
  • 好吧,对我来说它似乎不起作用,我收到这个错误:The TRUNCATE TABLE SQL construct or statement is not supported.
  • 您尝试执行的确切 SQL 是什么?
  • 这似乎是一个权限问题。从我链接的 msdn 文章中:所需的最低权限是对 table_name 的 ALTER。 TRUNCATE TABLE 权限默认授予表所有者、sysadmin 固定服务器角色成员以及 db_owner 和 db_ddladmin 固定数据库角色,并且不可转让。但是,您可以将 TRUNCATE TABLE 语句合并到模块中,例如存储过程,并使用 EXECUTE AS 子句授予模块适当的权限

标签: c# .net sql-server sql-server-2005


【解决方案1】:

用于 sql server 2005 的 t-sql:

TRUNCATE TABLE schema.tablename;
GO

链接:http://msdn.microsoft.com/en-us/library/ms177570%28v=SQL.90%29.aspx

【讨论】:

  • 非常感谢 :) 问题出在权限上。
【解决方案2】:

AFAIK TRUNCATE TABLE 在服务器 2005 中工作(只是尝试过以确保),因此请考虑这是一种替代方法,但仍不确定您为什么不想使用它。

你试过了吗

DELETE FROM TABLE

DELETE FROM TABLE WHERE 1=1 --SQL server may warn no expression in the previous one

【讨论】:

  • 与 TRUNCATE 不同,这会将所有已删除的行放入事务日志中,这可能是不希望的。
  • @Joe 是的,这是真的。我不确定他为什么不想使用 truncate table 虽然 AFAIK 它有效....
  • 我不是说他应该这样做,我只是说这是我所知道的唯一其他选择,没有真正的理由不使用 Truncate 而是每个人自己的。
猜你喜欢
  • 2020-01-24
  • 2022-08-24
  • 2018-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-21
  • 1970-01-01
相关资源
最近更新 更多