Skip to main content

Posts

How to Use Merge Statement Using XML Data

We now that merge statement in SQL SERVER. With Merge statement we can merge the data from Source table into Target table. In the Last article we have already seen about Merge Statement .   These articles we will work around merge statement over xml data type. We know that xml data type SQL SERVER. XML Data type is used to storing xml data used Bulk Insert Data into SQL Tables. Example: --Create Student Table if object_id ( 'Student' ) is null create table Student ( id int identity ( 1 , 1 ) , Name varchar ( 20 ), Marks int ) Declare Xml Data Type and Assign Some Xml Data. Declare @Data xml set @Data = '<Root> <Student> <Name>Rakesh</Name> <Marks>80</Marks> </Student> <Student> <Name>Mahesh</Name> <Marks>90</Marks> </Student> <Student> <Name>Gowtham</Name...

Difference between scope_identity (),@@identity, ident_current

Identity is the property in table. Identity column values automatically assigned value whenever new record inserted into a table. Note: A table having only one identity column. In real time scenario whenever new record inserted into record we need to return that Last Identity value to end user, because of end user application need to check the record gets inserted successfully or not. If we want to return the last identity value we have 3 built in statements in SQL SERVER. 1.        scope_identity () 2.        @@identity 3.        ident_current Scope_identity (): This function returns the last identity genarated value in the current session and same currnet scope. @@identity This function returns the last identity geanrated value in the current and regardless of scope. ident_current In this function we need to pass table name as input parameter. ...

Which data type is preferable over identity column?

An Identity column in SQL-SERVER It is automatically inserted the value in identity column whenever new record gets inserted into the table. --Create Student if object_id ( 'Student' ) is null create table Student ( id tinyint identity ( 1 , 1 ) , Name varchar ( 20 ), Marks int ) If we observe above Create table statement the Id column is identity column and its data type is tinyint . We know that tinyint accepts 0 to 255 numbers range. --insert data into Student table. Declare @start int = 1 while ( @start <= 256 ) begin                 insert into Student ( Name , Marks ) values ( 'Rakesh' , 500 ) set @start = @start + 1 end In the above while loop we are trying to insert same record in 256 time. The identity column automatically supplied value. The 1-255 records gets inserted successfully.256 record get an error because of tinyint accepts 0-255 records ...

SET NOEXEC

Compiles each query but not execute it. Means it will check the in query any syntax is there if any syntax error is there it will give error. If there is no error it will not execute when SET NOEXEC ON. It will execute the when SET NOEXEC OFF. By default it is in OFF. --Create Student if object_id ( 'Student' ) is null create table Student ( id int identity ( 1 , 1 ) , Name varchar ( 20 ), Marks int )            --Insert Some Sample Data to Source_Student insert Student ( Name , Marks ) values ( 'Rakesh' , 500 ) insert Student ( Name , Marks ) values ( 'Raju' , 400 ) set noexec on select * from Student set noexec off The above select query does not gives result . because of NOEXEC ON. Note: Do not forget NOEXEC OFF after testing purpose .

Merge Statement Part-2

With Merge statement  we can merge the data from Souce table into Target table. Synatx: MERGE INTO <Target Table > AS TRG USING <Souce Table> As SRC ON <Merge Conidtion> WHEN MATCHED [AND Condition] THEN <Action> WHEN NOT MATCHED [BY TARGET ] [AND Condition] THEN <Action> WHEN NOT MATCHED BY SOURCE [AND CONIDTION] THEN <Action. MERGE INTO <Target Table>: This cluase define the  Target table for the  operation. USING <Source Table>: This clause define the Source table for the opearation. In Source Table we can use Table ,CTE,Dervied Table,Some Other Database Table,OPENROWSET, XQUERY. ON<Merge Condition>: This is just like as ON Clause like in Joins. This Statement defines the Both Souce table and Target table Matched or NotMatched. WHEN MATCHED [AND Condition]  THEN <ACTION>: This clause defines the When Both Souce Table and Target Table Matched based on key .Here [AND C...

Merge Statement Part-1

  --Create Source_Student   if object_id ( 'Source_Student' ) is null   create table Source_Student ( id int identity ( 1 , 1 ) , Name varchar ( 20 ) Marks int )                 --Insert Some Sample Data to Source_Student    insert Source_Student ( Name , Marks ) values ( 'Rakesh' , 500 )    insert Source_Student ( Name , Marks ) values ( 'Raju' , 400 )                 --Create Target_Student   if object_id ( 'Target_Student' ) is null   create table Target_Student ( id int , Name varchar ( 20 ), Marks int )                 --Insert Some Sample Data to Target_Student    insert Target_Student ( id , Name , Marks ) values ( 1 , 'Rakesh' , 600 )    in...