小编Vyo*_*yom的帖子

不使用 Alter Table 权限截断表

所以我的 DBA 不希望开发人员授予 Alter table 权限。现在我们创建的过程之一需要截断表(因为显然delete只删除记录,但truncate 也释放了空间)。

现在为了使用 truncate 所需的最低权限是“Alter table”。(来源

但也有一个解决方案描述为“创建一个存储过程,以所有者身份执行仅对一个表或对任何表的存储过程”(由 user3854427 提供)。

我的问题是对他提供的代码的回应。嵌入代码以方便参考:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:      Yimy Orley Asprilla
-- Create date: Julio 16 de 2014
-- Description: Función para hacer TRUNCATE a una tabla.
-- =============================================
ALTER PROCEDURE [dbo].[spTruncate]
    @nameTable varchar(60)  


WITH EXECUTE AS OWNER
AS

SET NOCOUNT OFF;

DECLARE @QUERY NVARCHAR(200);

SET @QUERY = N'TRUNCATE TABLE ' + @nameTable + ';' …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql alter-table

5
推荐指数
2
解决办法
2116
查看次数

标签 统计

alter-table ×1

sql-server ×1

t-sql ×1