Tuesday, 16 June 2015

Kill session when table got locked in SQL server

SELECT sqltext.TEXT,

req.session_id,

req.status,

req.command,

req.cpu_time,

req.total_elapsed_time

FROM sys.dm_exec_requests req

CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext

Creating Hash bytes on Sql server table

CREATE TABLE [dbo].[ITEM](

[ITEMID] int IDENTITY(1,1) NOT NULL,

[NAME] nvarchar(50) NOT NULL,

[DESCRIPTION] nvarchar(200) NOT NULL,

[OrderDate] date DEFAULT GETDATE(),

[HASH] varchar(200) Default hashbytes('SHA2_256',[NAME]+ '|' +[DESCRIPTION])

)

CDC Enable and Disable on SQL Server with File Group

--Cdc Enable

--Create table
 

 


CREATE TABLE [dbo].[testScore](

[no] [int] NULL,

[score] [int] NULL




)
--insert values
insert into testScore

select 1, 2




--Enable CDc

--Enable
EXEC sys.sp_cdc_enable_db

EXEC sys.sp_cdc_enable_table

@source_schema = N'dbo',

@source_name = N'testScore',

@role_name = NULL,

@capture_instance = N'dbo_testScore'



 
select* from cdc.dbo_testScore_CT




---Disable



 
exec sys.sp_cdc_disable_db

EXEC sys.sp_cdc_disable_table

@source_schema = N'dbo',

@source_name = N'testScore',

@capture_instance = N'dbo_testScore'




GO

declare @objid int

set @objid = (select object_id from cdc.change_tables where capture_instance = 'dbo_testScore')

delete from cdc.index_columns where object_id = @objid

delete from cdc.captured_columns where object_id = @objid

delete from cdc.change_tables where object_id = @objid



 
--Cdc with file group
ALTER DATABASE TEST1

ADD FILEGROUP CDC_1;



 
ALTER DATABASE TEST1

ADD FILE




(
NAME = test,

FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\Cdctest.ndf',

SIZE = 6MB,

MAXSIZE = 18MB,

FILEGROWTH = 1




)
TO FILEGROUP CDC_1;




--Enable
EXEC sys.sp_cdc_enable_db

EXEC sys.sp_cdc_enable_table

@source_schema = N'dbo',

@source_name = N'testScore',

@role_name = NULL,

@capture_instance = N'dbo_testScore',

@filegroup_Name=N'CDC_1'