Friday, 30 October 2020

Trigger: Create trigger with all CRUD ( insert, update ,delete )

 alter trigger SynchTriggerForTestDataFactoryLog

on dbo.TestDataFactoryLogOnPremise

after update,insert,delete 

as 

begin

if(ROWCOUNT_BIG() = 0)

return;


declare @activity varchar(20);


if exists(SELECT * from inserted) and exists (SELECT * from deleted)

begin

    SET @activity = 'UPDATE'

    insert into TestSyncOcrLog select 'TestDataFactoryLogOnPremise' as SourceName,Id as SourceID,0 as IsSyncForOnPrmise,1 as IsSyncForCloud,@activity as Activity

from inserted

end



If exists (Select * from inserted) and not exists(Select * from deleted)

begin

   SET @activity = 'INSERT';

   insert into TestSyncOcrLog select 'TestDataFactoryLogOnPremise' as SourceName,Id as SourceID,0 as IsSyncForOnPrmise,1 as IsSyncForCloud,@activity as Activity

from inserted

end



If exists(select * from deleted) and not exists(Select * from inserted)

begin 

   SET @activity = 'DELETE';

  insert into TestSyncOcrLog select 'TestDataFactoryLogOnPremise' as SourceName,Id as SourceID,0 as IsSyncForOnPrmise,1 as IsSyncForCloud,@activity as Activity

from deleted

end



end



Thursday, 29 October 2020

CONVERT SQL TABLE TO C# CLASS

CONVERT SQL TABLE TO C# CLASS

CONVERT SQL TABLE TO  JAVA CLASS




declare @TableName sysname = 'TableName'

declare @Result varchar(max) = 'public class ' + @TableName + '

{'


select @Result = @Result + '

    public ' + ColumnType + NullableSign + ' ' + ColumnName + ' { get; set; }

'

from

(

    select 

        replace(col.name, ' ', '_') ColumnName,

        column_id ColumnId,

        case typ.name 

            when 'bigint' then 'long'

            when 'binary' then 'byte[]'

            when 'bit' then 'bool'

            when 'char' then 'string'

            when 'date' then 'DateTime'

            when 'datetime' then 'DateTime'

            when 'datetime2' then 'DateTime'

            when 'datetimeoffset' then 'DateTimeOffset'

            when 'decimal' then 'decimal'

            when 'float' then 'double'

            when 'image' then 'byte[]'

            when 'int' then 'int'

            when 'money' then 'decimal'

            when 'nchar' then 'string'

            when 'ntext' then 'string'

            when 'numeric' then 'decimal'

            when 'nvarchar' then 'string'

            when 'real' then 'float'

            when 'smalldatetime' then 'DateTime'

            when 'smallint' then 'short'

            when 'smallmoney' then 'decimal'

            when 'text' then 'string'

            when 'time' then 'TimeSpan'

            when 'timestamp' then 'long'

            when 'tinyint' then 'byte'

            when 'uniqueidentifier' then 'Guid'

            when 'varbinary' then 'byte[]'

            when 'varchar' then 'string'

            else 'UNKNOWN_' + typ.name

        end ColumnType,

        case 

            when col.is_nullable = 1 and typ.name in ('bigint', 'bit', 'date', 'datetime', 'datetime2', 'datetimeoffset', 'decimal', 'float', 'int', 'money', 'numeric', 'real', 'smalldatetime', 'smallint', 'smallmoney', 'time', 'tinyint', 'uniqueidentifier') 

            then '?' 

            else '' 

        end NullableSign

    from sys.columns col

        join sys.types typ on

            col.system_type_id = typ.system_type_id AND col.user_type_id = typ.user_type_id

    where object_id = object_id(@TableName)

) t

order by ColumnId


set @Result = @Result  + '

}'


print @Result