RSS

Monthly Archives: May 2016

SQL SERVER 2016 Always Encrypted

It is the new way of Data encryption introduced with SQL Server 2016 used for encrypting the sensitive date encrypted at the application layer via ADO.NET. This means you can encrypt your confidential data with the yours.NET application before the data being sent across the network to SQL Server.

Column master key:

The Column Master Key is stored on an application machine, in an external key store. This key used for protecting the column encryption key and SQL Server doesn’t have any access to this core directly

Column Encryption Key:

But this one is stored in SQL Server and it used for encrypting/decrypt the Always Encrypted column at this time the scenario of the encryption will be the first ADO.NET has decrypted the Column Encryption Key, using the Column Master Key then SQL Server use Encryption Key for encrypting/decrypt the Always Encrypted column.

1

Technical Demo:

  • Expand your DB under security you will find “Always Encrypted Keys
  • Right click create new column master key

USE [SQL2016DEMO]
CREATE COLUMN MASTER KEY [Demo_Always_Encrypted_CMK]
WITH
(
KEY_STORE_PROVIDER_NAME = N’MSSQL_CERTIFICATE_STORE’,
KEY_PATH = N’CurrentUser/My/09D607EDCEC14A9E009FC59B67E7F423DBEE9C9E’
)

Read the rest of this entry »

 
Leave a comment

Posted by on May 30, 2016 in SQL Server 2016

 

Tags: , , ,

How to Find the Last Inserted Record in SQL Server

Overview

When the users of SQL Server stores data in table of their database, they use an identity column as primary key. The identity column will increase its value automatically whenever new row is added. However, in some cases users may need to determine the last inserted record in database. The blog will be explaining some of the possible ways on how to find the last inserted record in SQL Server.

Determine Last Inserted Record in SQL Server

While we work with the table in SQL Server database, we set identity column that act as an auto increment column in table to increase column ID value whenever new record is inserted. Suppose we want to insert a name of the employee in the table ‘Employees’, we will do that using the below command:

INSERT INTO Employees (FirstName) VALUES (‘Mellisa’)

Now, in order to get the lasted inserted record ID, we can use the following options:

  1. SELECT @@IDENTITY
    • It returns the last IDENTITY value produced on a connection, regardless of the table that produced the value and of the scope of the statement that produced the value.
    • It is used to give the last identity value generated by the statement.
    • If the statement did not affect any tables with identity columns, this command returns NULL
    • If the table contains multiple rows generating multiple identity values, @@IDENTITY returns the last identity value generated.
    • Though @@IDENTITY is limited to current session, it is not limited to current scope. Even if trigger on the table caused identity to be created, you will get identity that was last created, even if it is a trigger.
  2. SELECT SCOPE_IDENTITY()
    • As the name suggests, it will return the last identity produced on a connection and by statement in same scope, regardless of the table that produced the value.
    • It is limited to the current scope and in current session as well.
    • It will return the last identity that was explicitly created, rather than any identity created by trigger or user-defined function.
  3. SELECT IDENT_CURRENT(‘TableName’)
    • It returns the last identity value produced in a table, regardless of the connection and the scope of the statement that created the value.
    • It is not limited by scope and session but is limited to a specified table.
    • It will return the identity value generated for the specific table in any session or any scope.

Conclusion

In the blog, we have discussed about some of the approaches through which we can find the last inserted record in SQL Server database. Among the methods SCOPE_IDENTITY() is recommended as it avoids the potential issues associated with addition of trigger while returning identity of the recently inserted record. The manual methods of determining last inserted record using these commands may sometimes be time taking and difficult for non-technical users. One of the easy alternative for the same purpose is to use a third party tool to view SQL Server transaction log that is used to read and analyze SQL Server Log File transactions that will give detailed analysis of all transactions like insert, delete, update etc.

 
1 Comment

Posted by on May 9, 2016 in General topics

 

Tags: