Skip to content

Instantly share code, notes, and snippets.

DELETE dbo.Emp
WHERE  FirstName = 'Joey'
AND LastName = 'Tribbiani' 
SELECT *
, CHANGE_TRACKING_IS_COLUMN_IN_MASK (COLUMNPROPERTY(OBJECT_ID('dbo.Emp'), 'LastName', 'ColumnId'), ct.SYS_CHANGE_COLUMNS) AS MiddleName_Changed
FROM CHANGETABLE(CHANGES dbo.Emp, @ver) AS ct
UPDATE dbo.Emp
SET MiddleName = 'Muriel'
WHERE FirstName = 'Chandler' AND LastName = 'Bing'
UPDATE dbo.Emp
SET LastName = 'Bing'
WHERE FirstName = 'Monica' AND LastName = 'Geller'
SET @ver = CHANGE_TRACKING_CURRENT_VERSION() 
SELECT *
FROM CHANGETABLE(CHANGES dbo.Emp, @ver) 
INSERT dbo.Emp VALUES ('Joey' ,NULL ,'Tribbiani')
INSERT dbo.Emp VALUES ('Chandler' ,NULL, 'Bing')
INSERT dbo.Emp VALUES ('Ross',NULL,'Geller')
INSERT dbo.Emp VALUES ('Monica',NULL,'Geller')
INSERT dbo.Emp VALUES ('Rachel',NULL,'Green')
INSERT dbo.Emp VALUES ('Phoebe',NULL,'Buffay') 
SELECT CHANGE_TRACKING_CURRENT_VERSION() 
ALTER TABLE [dbo].[Emp]
ENABLE change_tracking WITH (track_columns_updated = ON)
CREATE TABLE Emp
(
ID         INT PRIMARY KEY IDENTITY(1, 1),
FirstName  VARCHAR(100),
MiddleName VARCHAR(100),
LastName   VARCHAR(100)
public override void CreateNewOutputRows()
{
// All I need to do in this script component is to cast the object variable to a DataTable
DataTable dt = (DataTable)Variables.vResults;
// The DataTable is now ready to use! No more recordset quirks.
foreach (DataRow dr in dt.Rows)
{
/*