Here is an T-SQL Query to find size of all tables in a database
DECLARE @TableSize TABLE (name nvarchar(150) ,[rows] int ,reserved nvarchar(150) ,data nvarchar(150) ,index_size nvarchar(150) ,unused nvarchar(150))
DECLARE @TableSize TABLE (name nvarchar(150) ,[rows] int ,reserved nvarchar(150) ,data nvarchar(150) ,index_size nvarchar(150) ,unused nvarchar(150))
USE msdb
GO
CREATE Trigger tr_AuditJobEnable
ON sysjobs
FOR UPDATE
AS
DECLARE @UserName VARCHAR(50),
@HostName VARCHAR(50),
@JobName VARCHAR(100),
@DeletedJobName VARCHAR(100),
@Ins_EnabledFlag INT,
@Del_EnabledFlag INT,
@Body VARCHAR(200),
@Subject VARCHAR(200),
@Servername VARCHAR(50)
SELECT @UserName = SYSTEM_USER, @HostName = HOST_NAME()
SELECT @Ins_EnabledFlag = Enabled FROM Inserted
SELECT @Del_EnabledFlag = Enabled FROM Deleted
SELECT @JobName = Name FROM Inserted
SELECT @Servername = @@servername
IF @Ins_EnabledFlag <> @Del_EnabledFlag
BEGIN
IF @Ins_EnabledFlag = 1
BEGIN
SET @Body = 'The User "'+@username+'" from "'+@hostname+
'" ENABLED the Job "'+@jobname+'" on '+CONVERT(VARCHAR(20),GETDATE(),100)
SET @Subject = 'SQL Job "'+@jobname+ '" on ' + @Servername+
' has been ENABLED at '+CONVERT(VARCHAR(20),GETDATE(),100)
END
IF @Ins_EnabledFlag = 0
BEGIN
SET @Body = 'The User "'+@username+'" from "'+@hostname+
'" DISABLED the Job "'+@jobname+'" on '+CONVERT(VARCHAR(20),GETDATE(),100)
SET @Subject = 'SQL Job "'+@jobname+ '" on ' + @Servername+
' has been DISABLED at '+CONVERT(VARCHAR(20),GETDATE(),100)
END
-- Send e-Mail
Exec msdb..sp_send_dbmail
@profile_name='DBA' -- Change to your Profile
,@recipients='segu.sandesh@gmail.com' -- Change Recipients
,@Subject=@Subject
,@Body=@Body
END
| Delete | Truncate |
| Delete is DML Command | Truncate is a DDL Command. |
| Delete Operation will not Reset Identity property of the column | Truncate Operation will Reset the Identity Property to the seed value that is defined for the column |
| Filters can be specified for Delete Operation (Where Condition) | Filters cannot be specified for Truncate Operation |
| Delete can be rolled back | Truncate can be rolled back if used within a Transaction |
| Delete statement uses row lock and each row is locked for deletion | Truncate statement uses Table or page Lock |
| Delete Operation is slower when compared to truncate because it logs an entry in transaction log for each deletion | Truncate Operation is faster because it is minimally Logged in transaction Log |
| Delete statements can activate triggers when defined | Triggers cannot be defined for Truncate Operation |