http://www.englishclub.com/
http://www.englishclub.com/pronunciation/tongue-twisters.htm
Thursday, May 24, 2012
Tuesday, May 22, 2012
SQL Server 2008 - HierarchyID - Part I
http://blogs.msdn.com/b/manisblog/archive/2007/08/17/sql-server-2008-hierarchyid.aspx
SQL Server 2008 - HierarchyID - Part I
I am excited by the cool new features that SQL Server 2008 is binging up !
SQL Server 2008 is bringing some commendable new features one of the nice feature is HierarchyID. This a new data type that is available in the in the latest July CTP of the SQL Server 2008 Developer Edition.
Organizations have struggled in past with the representation of tree like structures in the databases, lot of joins lots of complex logic goes into the place, whether it is organization hierarchy or defining a BOM (Bill of Materials) where one finished product is dependent on another semi finished materials / kit items and these kit items are dependent on another semi finished items or raw materials.
SQL Server 2008 has the solution to the problem where we store the entire hierarchy in the data type HierarchyID. HierarchyID is a variable length system data type. HierarchyID is used to locate the position in the hierarchy of the element like Scott is the CEO and Mark as well as Ravi reports to Scott and Ben and Laura report to Mark, Vijay, James and Frank report to Ravi.
Scott
|
Mark <- > Ravi
| |
Ben<-> Laura Vijay <-> Frank <-> James
This tree can expand to n nodes.
The average number of bits that are required to represent a node in a tree with n nodes depends on the average fanout (the average number of children of a node). For small fanouts (0-7), the size is about 6*logAn bits, where A is the average fanout. A node in an organizational hierarchy of 100,000 people with an average fanout of 6 levels takes about 38 bits. This is rounded up to 40 bits, or 5 bytes, for storage. It supports the insertion and deletion of nodes.
The HierarchyID can be indexed in two ways
1) Depth First strategy: A depth-first index, rows in a subtree are stored near each other. For example, all employees that report through a manager are stored near their managers' record.
[cid:image001.gif@01CD383A.42FF5220]<http://blogs.msdn.com/blogfiles/manisblog/WindowsLiveWriter/SQLServer2008HierarchyID_13519/DF.gif>
2) Breadth First Strategy : A breadth-first stores the rows each level of the hierarchy together. For example, the records of employees who directly report to the same manager are stored near each other.
[cid:image002.gif@01CD383A.42FF5220]<http://blogs.msdn.com/blogfiles/manisblog/WindowsLiveWriter/SQLServer2008HierarchyID_13519/BF.gif>
We can change the strategy as and when we want but the index needs to be dropped and then a new index has to be rebuilt. If if the data is huge and the index is clustered then the table is converted to heap and then indexed again.
The following are the methods in the SQL Server 2008 Database Engine to support HierarchyID data type.
1) GetAncestor
2) GetDescendant
3) GetLevel
4) GetRoot
5) IsDescendant
6) Parse
7) Read
8) Reparent
9) ToString
10) Write
GetAncestor()
This method is useful to find the (nth ancestor of the given child node.
Syntax: child.GetAncestor ( n )
GetDescendant()
This method is very useful to get the descendant of a given node. It has a great significance in terms of finding the new descendant position get the descendants etc.
Syntax: parent.GetDescendant ( child1 , child2 )
This function returns one child node that is a descendant of the parent.
1. If parent is NULL, returns NULL.
2. If parent is not NULL, and both child1 and child2 are NULL, returns a child of parent.
3. If parent and child1 are not NULL, and child2 is NULL, returns a child of parent greater than child1.
4. If parent and child2 are not NULL and child1 is NULL, returns a child of parent less than child2.
5. If parent, child1, and child2 are all not NULL, returns a child of parent greater than child1 and less than child2.
6. If child1 or child2 is not NULL but is not a child of parent, an exception is raised.
7. If child1 >= child2, an exception is raised.
GetLevel()
This method is useful to find the Level of the current node.
Syntax: node.GetLevel ( )
This function will return an integer that represents the depth of this node in the current tree.
GetRoot()
This method will return the root of the hierarchy tree and this is a static method if you are using it within CLR.
Syntax: hierarchyid::GetRoot ( )
It will return the data type hierarchyID.
IsDescendant()
This method returns true/false (BIT) if the node is a descendant of the parent.
Syntax: parent.IsDescendant ( child )
Parse()
Parse converts the canonical string representation of a hierarchyid to a hierarchyid value. Parse is called implicitly when a conversion from a string type to hierarchyid occurs. Acts as the opposite of ToString(). Parse() is a static method.
Syntax: hierarchyid::Parse ( input )
Read()
Read reads binary representation of SqlHierarchyId from the passed-in BinaryReader and sets the SqlHierarchyId object to that value. Read cannot be called by using Transact-SQL. Use CAST or CONVERT instead.
Syntax: void Read( BinaryReader r )
Reparent()
This is a very useful method which helps you to reparent a node i.e. suppose if we want to align an existing node to a new parent or any other existing parent then this method is very useful.
Syntax: node.Reparent ( oldRoot, newRoot )
ToString()
This method is useful to get the string representation of the HierarchyID. The method returns a string that is a nvarchar(4000) data type.
Syntax: node.ToString ( )
Write()
Write writes out a binary representation of SqlHierarchyId to the passed-in BinaryWriter. Write cannot be called by using Transact-SQL. Use CAST or CONVERT instead.
Syntax: void Write( BinaryWriter w )
Sample Code
Create Table and Index
Use AdventureWorksLT
Go
--Scheme Creation
Create Schema HumanResources
Go
--Table Creation
CREATE TABLE HumanResources.EmployeeDemo
(
OrgNode HIERARCHYID,
EmployeeID INT,
LoginID VARCHAR(100),
Title VARCHAR(200),
HireDate DATETIME
)
Go
--Index Creation
CREATE UNIQUE CLUSTERED INDEX idxEmployeeDemo
ON HumanResources.EmployeeDemo (OrgNode,EmployeeID)
Data Insertion
--Insert First Row
INSERT HumanResources.EmployeeDemo (OrgNode, EmployeeID, LoginID, Title, HireDate)
VALUES (hierarchyid GetRoot(), 1,'adventure-works\scott', 'CEO', '3/11/05') ;
Go
--Insert Second Row
DECLARE @Manager hierarchyid
SELECT @Manager = hierarchyid GetRoot() FROM HumanResources.EmployeeDemo;
INSERT HumanResources.EmployeeDemo (OrgNode, EmployeeID, LoginID, Title, HireDate)
VALUES (@Manager.GetDescendant(NULL,NULL), 2, 'adventure-works\Mark',
'CTO', '4/05/07')
Go
--Insert Third Row
DECLARE @Manager hierarchyid
DECLARE @FirstChild hierarchyid
SELECT @Manager = hierarchyid GetRoot() FROM HumanResources.EmployeeDemo;
Select @FirstChild = @Manager.GetDescendant(NULL,NULL)
INSERT HumanResources.EmployeeDemo (OrgNode, EmployeeID, LoginID, Title, HireDate)
VALUES (@Manager.GetDescendant(@FirstChild,NULL), 3, 'adventure-works\ravi',
'Director Marketing', '4/08/07')
Go
--Insert the First Descendant of a Child Node
DECLARE @Manager hierarchyid
SELECT @Manager = CAST('/1/' AS hierarchyid)
INSERT HumanResources.EmployeeDemo (OrgNode, EmployeeID, LoginID, Title, HireDate)
VALUES (@Manager.GetDescendant(NULL, NULL),45,
'adventure-works\Ben','Application Developer', '6/11/07') ;
Go
--Insert the Second Descendant of a Child Node
DECLARE @Manager hierarchyid
DECLARE @FirstChild hierarchyid
SELECT @Manager = CAST('/1/' AS hierarchyid)
SELECT @FirstChild = @Manager.GetDescendant(NULL,NULL)
INSERT HumanResources.EmployeeDemo (OrgNode, EmployeeID, LoginID, Title, HireDate)
VALUES (@Manager.GetDescendant(@FirstChild, NULL),55,
'adventure-works\Laura','Trainee Developer', '6/11/07') ;
Go
--Insert the first node who is the Descendant of Director Marketing
DECLARE @Manager hierarchyid
DECLARE @FirstChild hierarchyid
SELECT @Manager = CAST('/2/' AS hierarchyid)
INSERT HumanResources.EmployeeDemo (OrgNode, EmployeeID, LoginID, Title, HireDate)
VALUES (@Manager.GetDescendant(NULL, NULL),551,
'adventure-works\frank','Trainee Sales Exec.', '12/11/07') ;
Go
--Insert the second node who is the Descendant of Director Marketing
DECLARE @Manager hierarchyid
DECLARE @FirstChild hierarchyid
SELECT @Manager = CAST('/2/' AS hierarchyid)
SELECT @FirstChild = @Manager.GetDescendant(NULL,NULL)
INSERT HumanResources.EmployeeDemo (OrgNode, EmployeeID, LoginID, Title, HireDate)
VALUES (@Manager.GetDescendant(@FirstChild, NULL),531,
'adventure-works\vijay','Manager Industrial Sales', '12/09/06') ;
Go
--Insert the third node who is the Descendant of Director Marketing
--in between 2 existing descendants
DECLARE @Manager hierarchyid
DECLARE @FirstChild hierarchyid
DECLARE @SecondChild hierarchyid
SELECT @Manager = CAST('/2/' AS hierarchyid)
SELECT @FirstChild = @Manager.GetDescendant(NULL,NULL)
SELECT @SecondChild = @Manager.GetDescendant(@FirstChild,NULL)
INSERT HumanResources.EmployeeDemo (OrgNode, EmployeeID, LoginID, Title, HireDate)
VALUES (@Manager.GetDescendant(@FirstChild, @SecondChild),543,
'adventure-works\james','Manager Consumer Sales', '12/04/06') ;
Procedure to insert Employee Record
--Use Serializable Transaction
CREATE PROCEDURE AddEmployee(@ManagerID hierarchyid, @EmpID int,
@LogID varchar(100), @JobTitle as varchar(200), @JoiningDate datetime)
AS
BEGIN
DECLARE @LastChild hierarchyid
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRANSACTION
SELECT @LastChild = Max(OrgNode) From HumanResources.EmployeeDemo
WHERE OrgNode = @ManagerID
INSERT HumanResources.EmployeeDemo (OrgNode, EmployeeID, LoginID, Title, HireDate)
VALUES(@LastChild, @EmpID,@LogID , @JobTitle, @JoiningDate)
COMMIT
END ;
Hope you like this article I will write more about HierarchyID very soon. If you like the article or have any doubts then drop me an post.
I am attaching the sample SQL Script along so that you can test it in your test environment.
Monday, May 21, 2012
SQL: How Can I Sort A 'Version Number' Column Generically Using a SQL Server Query : Good One
http://stackoverflow.com/questions/3474870/how-can-i-sort-a-version-number-column-generically-using-a-sql-server-query
How Can I Sort A 'Version Number' Column Generically Using a SQL Server Query<http://stackoverflow.com/questions/3474870/how-can-i-sort-a-version-number-column-generically-using-a-sql-server-query>
2down votefavorite<http://stackoverflow.com/questions/3474870/how-can-i-sort-a-version-number-column-generically-using-a-sql-server-query>
1
share [g+]share [fb]share [tw]
I wonder if the SQL geniuses amongst us could lend me a helping hand.
I have a column VersionNo in a table Versions that contains 'version number' values like
VersionNo
---------
1.2.3.1
1.10.3.1
1.4.7.2
etc.
I am looking to sort this, but unfortunately, when I do a standard order by, it is treated as a string, so the order comes out as
VersionNo
---------
1.10.3.1
1.2.3.1
1.4.7.2
Intead of the following, which is what I am after:
VersionNo
---------
1.2.3.1
1.4.7.2
1.10.3.1
So, what I need to do is to sort by the numbers in reverse order (e.g. in a.b.c.d, I need to sort by d,c,b,a to get the correct sort ourder).
But I am stuck as to how to achieve this in a GENERIC way. Sure, I can split the string up using the various sql functions (e.g. left, right, substring, len, charindex), but I can't guarantee that there will always be 4 parts to the version number. I may have a list like this:
VersionNo
---------
1.2.3.1
1.3
1.4.7.2
1.7.1
1.10.3.1
1.16.8.0.1
Can, does anyone have any suggestions? Your help would be much appreciated.
Answer:
If You are using SQL Server 2008
select VersionNo from Versions order by cast('/' + replace(VersionNo , '.', '/') + '/' as hierarchyid);
What is hierarchyid<http://msdn.microsoft.com/en-us/library/bb677290.aspx>
Edit:
Solutions for 2000, 2005, 2008: Solutions to T-SQL Sorting Challenge here<http://www.sqlmag.com/article/sql-server/solutions-to-t-sql-sorting-challenge.aspx>.
The challenge<http://www.sqlmag.com/article/sql-server/t-sql-sorting-challenge.aspx>
Note:
In SQL Server 2008 things are drastically simpler. With slight adjustment of the dot separated list of values, you get the canonical string representation a HIERARCHYID value. Either replace all dots in the string with slashes and add a slash at the beginning and end of the string, or simply add a slash at the beginning and end of the string. Either way, convert the adjusted string to HIERARCHYID, and the values would naturally sort correctly based on the integer values in the string segments. Several people came with such a solution: Razvan Socol, Pawel Potasinski, Peter DeBetta and myself. Here are two examples based on this approach:
select val
from dbo.t1
order by cast('/' + replace(val, '.', '/') + '/' as hierarchyid);
select val
from dbo.t1
order by cast('/' + val + '/' as hierarchyid);
Friday, March 2, 2012
SQL SERVER - How To Handle Deadlock: Nice Example
SQL SERVER - How To Handle Deadlock
By Nitin Chilka<http://www.codeproject.com/script/Membership/View.aspx?mid=3897642> | 22 Sep 2009
SQL2005<http://www.codeproject.com/search.aspx?aidlst=30>SQL<http://www.codeproject.com/search.aspx?aidlst=93>Windows<http://www.codeproject.com/search.aspx?aidlst=94>SQL-Server<http://www.codeproject.com/search.aspx?aidlst=101>DBA<http://www.codeproject.com/search.aspx?aidlst=117>Dev<http://www.codeproject.com/search.aspx?aidlst=118>Intermediate<http://www.codeproject.com/search.aspx?aidlst=153>
An article on how to handle deadlock
Introduction
A deadlock is a situation wherein two transactions wait for each other to give up their respective locks.
When this happens, the SQL Server ends the deadlock by automatically choosing one and aborting the process, allowing the other process to continue. The aborted transaction is rolled back and an error message is sent to the user of the aborted process. Generally, the transaction that requires the least amount of overhead to rollback is the transaction that is aborted.
This article will explain how to handle deadlocks in a user-friendly way.
The Deadlock
Transaction A attempts to update table 1 and subsequently read/update data from table 2, whereas transaction B attempts to update table 2 and subsequently read/update data from table 1. In such situations, transaction A holds locks that transaction B needs to complete its task and vice versa; neither transaction can complete until the other transaction releases locks.
The Deadlock Situation
The below example shows the deadlock situation between the two transactions.
Transaction A
[cid:image001.gif@01CCF86D.7391A3F0]Collapse | Copy Code<http://www.codeproject.com/Articles/42547/SQL-SERVER-How-To-Handle-Deadlock>
BEGIN TRANSACTION
UPDATE Customer SET LastName = 'John' WHERE CustomerId=111
WAITFOR DELAY '00:00:05' -- Wait for 5 ms
UPDATE Orders SET CustomerId = 1 WHERE OrderId = 221
COMMIT TRANSACTION
Transaction B
[cid:image001.gif@01CCF86D.7391A3F0]Collapse | Copy Code<http://www.codeproject.com/Articles/42547/SQL-SERVER-How-To-Handle-Deadlock>
BEGIN TRANSACTION
UPDATE Orders SET ShippingId = 12 WHERE OrderId = 221
WAITFOR DELAY '00:00:05' -- Wait for 5 ms
UPDATE Customer SET FirstName = 'Mike' WHERE CustomerId=111
COMMIT TRANSACTION
If both the transactions are executed at the same time, then Transaction A locks and updates Customer table whereas transaction B locks and updates Orders table. After a delay of 5 ms, transaction A looks for the lock on Orders table which is already held by transaction B and transaction B looks for lock on Customer table which is held by transaction A. So both the transactions cannot proceed further, the deadlock occurs and the SQL server returns the error message 1205 for the aborted transaction.
[cid:image001.gif@01CCF86D.7391A3F0]Collapse | Copy Code<http://www.codeproject.com/Articles/42547/SQL-SERVER-How-To-Handle-Deadlock>
(1 row(s) affected)
Msg 1205, Level 13, State 45, Line 5
Transaction (Process ID 52) was deadlocked on lock resources with
another process and has been chosen as the deadlock victim.
Rerun the transaction.
But what if you don't like the default behavior (aborting the transaction)? Can you change it? Yes, you can, by rewriting Transactions A and B as shown below.
Transaction A
[cid:image001.gif@01CCF86D.7391A3F0]Collapse | Copy Code<http://www.codeproject.com/Articles/42547/SQL-SERVER-How-To-Handle-Deadlock>
RETRY: -- Label RETRY
BEGIN TRANSACTION
BEGIN TRY
UPDATE Customer SET LastName = 'John' WHERE CustomerId=111
WAITFOR DELAY '00:00:05' -- Wait for 5 ms
UPDATE Orders SET CustomerId = 1 WHERE OrderId = 221
COMMIT TRANSACTION
END TRY
BEGIN CATCH
PRINT 'Rollback Transaction'
ROLLBACK TRANSACTION
IF ERROR_NUMBER() = 1205 -- Deadlock Error Number
BEGIN
WAITFOR DELAY '00:00:00.05' -- Wait for 5 ms
GOTO RETRY -- Go to Label RETRY
END
END CATCH
Transaction B
[cid:image001.gif@01CCF86D.7391A3F0]Collapse | Copy Code<http://www.codeproject.com/Articles/42547/SQL-SERVER-How-To-Handle-Deadlock>
RETRY: -- Label RETRY
BEGIN TRANSACTION
BEGIN TRY
UPDATE Orders SET ShippingId = 12 Where OrderId = 221
WAITFOR DELAY '00:00:05' -- Wait for 5 ms
UPDATE Customer SET FirstName = 'Mike' WHERE CustomerId=111
COMMIT TRANSACTION
END TRY
BEGIN CATCH
PRINT 'Rollback Transaction'
ROLLBACK TRANSACTION
IF ERROR_NUMBER() = 1205 -- Deadlock Error Number
BEGIN
WAITFOR DELAY '00:00:00.05' -- Wait for 5 ms
GOTO RETRY -- Go to Label RETRY
END
END CATCH
Here I have used Label RETRY at the beginning of both the transactions. The TRY/CATCH method is used to handle the exceptions in the transactions. If the code within the TRY block fails, the control automatically jumps to the CATCH block, letting the transaction roll back, and if the exception is occurred due to deadlock (Error_Number 1205), the transaction waits for 5 milliseconds. The delay is used here because the other transaction (which is not aborted) can complete its operation within delay duration and release the lock on the table which was required by the aborted transaction. You can increase the delay according to the size of your transactions. After the delay, the transaction starts executing from the beginning (RETRY: Label RETRY at the beginning of the transaction) using the below statement:
[cid:image001.gif@01CCF86D.7391A3F0]Collapse | Copy Code<http://www.codeproject.com/Articles/42547/SQL-SERVER-How-To-Handle-Deadlock>
GOTO RETRY -- Go to Label RETRY
This statement is used to transfer the control to the label named RETRY (which is at the beginning).
Now Execute the Transaction A and Transaction B at the same time. Both the transactions will execute successfully. Have a look into the outputs of the transaction where the exception occurred.
[cid:image001.gif@01CCF86D.7391A3F0]Collapse | Copy Code<http://www.codeproject.com/Articles/42547/SQL-SERVER-How-To-Handle-Deadlock>
(1 row(s) affected)
Rollback Transaction
(1 row(s) affected)
(1 row(s) affected)
Using RetryCounter
Now, I guess you understood how to handle deadlock without aborting the transaction. Let's move to the next interesting topic about deadlock. Imagine if there are more than two processes that read/update the Customer or Orders table at the same time. Below, I have modified both the transactions where I have shown how we can use RetryCounter to solve the problem.
Transaction A
[cid:image001.gif@01CCF86D.7391A3F0]Collapse | Copy Code<http://www.codeproject.com/Articles/42547/SQL-SERVER-How-To-Handle-Deadlock>
DECLARE @RetryCounter INT
SET @RetryCounter = 1
RETRY: -- Label RETRY
BEGIN TRANSACTION
BEGIN TRY
UPDATE Customer SET LastName = 'John' WHERE CustomerId=111
WAITFOR DELAY '00:00:05' -- Wait for 5 ms
UPDATE Orders SET CustomerId = 1 WHERE OrderId = 221
COMMIT TRANSACTION
END TRY
BEGIN CATCH
PRINT 'Rollback Transaction'
ROLLBACK TRANSACTION
DECLARE @DoRetry bit; -- Whether to Retry transaction or not
DECLARE @ErrorMessage varchar(500)
SET @doRetry = 0;
SET @ErrorMessage = ERROR_MESSAGE()
IF ERROR_NUMBER() = 1205 -- Deadlock Error Number
BEGIN
SET @doRetry = 1; -- Set @doRetry to 1 only for Deadlock
END
IF @DoRetry = 1
BEGIN
SET @RetryCounter = @RetryCounter + 1 -- Increment Retry Counter By one
IF (@RetryCounter > 3) -- Check whether Retry Counter reached to 3
BEGIN
RAISERROR(@ErrorMessage, 18, 1) -- Raise Error Message if
-- still deadlock occurred after three retries
END
ELSE
BEGIN
WAITFOR DELAY '00:00:00.05' -- Wait for 5 ms
GOTO RETRY -- Go to Label RETRY
END
END
ELSE
BEGIN
RAISERROR(@ErrorMessage, 18, 1)
END
END CATCH
Transaction B
[cid:image001.gif@01CCF86D.7391A3F0]Collapse | Copy Code<http://www.codeproject.com/Articles/42547/SQL-SERVER-How-To-Handle-Deadlock>
DECLARE @RetryCounter INT
SET @RetryCounter = 1
RETRY: -- Label RETRY
BEGIN TRANSACTION
BEGIN TRY
UPDATE Orders SET ShippingId = 12 Where OrderId = 221
WAITFOR DELAY '00:00:05' -- Wait for 5 ms
UPDATE Customer SET FirstName = 'Mike' WHERE CustomerId=111
COMMIT TRANSACTION
END TRY
BEGIN CATCH
PRINT 'Rollback Transaction'
ROLLBACK TRANSACTION
DECLARE @DoRetry bit; -- Whether to Retry transaction or not
DECLARE @ErrorMessage varchar(500)
SET @doRetry = 0;
SET @ErrorMessage = ERROR_MESSAGE()
IF ERROR_NUMBER() = 1205 -- Deadlock Error Number
BEGIN
SET @doRetry = 1; -- Set @doRetry to 1 only for Deadlock
END
IF @DoRetry = 1
BEGIN
SET @RetryCounter = @RetryCounter + 1 -- Increment Retry Counter By one
IF (@RetryCounter > 3) -- Check whether Retry Counter reached to 3
BEGIN
RAISERROR(@ErrorMessage, 18, 1) -- Raise Error Message
-- if still deadlock occurred after three retries
END
ELSE
BEGIN
WAITFOR DELAY '00:00:00.05' -- Wait for 5 ms
GOTO RETRY -- Go to Label RETRY
END
END
ELSE
BEGIN
RAISERROR(@ErrorMessage, 18, 1)
END
END CATCH
The RetryCounter variable used here gives a chance for the transaction to execute again if it fails due to deadlock (Error_Number 1205). In this example, the transaction can try to execute up to three times if it fails due to a deadlock. This scenario would be very useful if the transaction looking for the lock which was not released by the other transactions for a long time. So the transaction can try three times to check whether the required lock is available.
History
* 20th September, 2009: Initial version
License
This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)<http://www.codeproject.com/info/cpol10.aspx>
About the Author
Nitin Chilka<http://www.codeproject.com/Members/Nitin-Chilka>
References:
http://www.codeproject.com/Articles/42547/SQL-SERVER-How-To-Handle-Deadlock
Monday, February 20, 2012
JOB: "Star F.A.D. Technology Pvt. Ltd." Interviews.
From: Varadhi Software <varadhi.soft@gmail.com>
Date: Mon, Feb 20, 2012 at 11:58 AM
Subject: Fwd: Fw: "Star F.A.D. Technology Pvt. Ltd." Interviews.
To:
In our organization ("Star FAD Technology Pvt. Ltd.") we have 6 vacancies. Anybody who ever is interested (male or female) qualified with Intermediate and any degree pass or fail with any computer course is eligible(Any Multimedia course is more preferable).
This is regarding computer editing and mixing job. Age limit is 18years to 25years. If the candidate is selected, the we give training for 15days (In this training period 50% salary would be paid to the selected candidates). Monthly salary would be 25000/-. Monday to Friday are working days and timing is 10am to 6pm.
Firstly we give agreement for 1year when a person joins. If his or her performance is good we extend the period upto five years and also every year salary will be hike up to 20%.
So, Interested candidates can come on Sunday to Wednesday 10am to 7pm i.e. on Feb 19th, 20th, 21th, 22nd & 23rd which is the last date of the interview . You should bring your last completed educational qualified certificate and also certificates of any completed computer courses & 2 passport size photos with an appropriate resume (Your certificates should be only xerox copies).
[Note:' This is not placement service this is our company openings only' and also give this message to friends, collegues and to all ur students. In these selected candidates will be sent to US after one year if their performance is good in their work]
Thanking you Sir/Madam,
M.Rajkumar Chowdary,.(Chairman & Director)
"Star FAD Technology Pvt. Ltd."
Interview Place:
Star F.A.D. Technology Pvt. Ltd.
V.V. Complex, Above Syndicate Bank,
4th Floor, Near Kalanikethan,
Chaitanyapuri,
Dilsukhnagar,
Hyderabad.
Contact No. 9705266097
Friday, January 20, 2012
SQL : Row-By-Row Processing Without Cursor
Row-By-Row Processing Without Cursor
Here is the Logic.....
--Create a Table Variable and Variable Counter
DECLARE @InitialTable TABLE(RowNo INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED, Field1 int, Field2 Int)
DECLARE @IncrementalCounter INT 'This variable is declare for Loop
--All values are inserted into Your Table Variable ........
Insert into @InitialTable (field1, Feld2)
Select A1, A2 from Your_Table Where Your_Condition
----------------------------------------------------------
--Initialize the Counter
SET @IncrementalCounter = 1
--Condition of Checking the No of records to be traverse
while @IncrementalCounter <= ISNULL((SELECT COUNT(RowNo) FROM @InitialTable),0)
BEGIN
--Here we set the variable value to the @variable
SELECT @Variable = Field1 FROM @InitalTable where RowNo = @IncrementalCounter
SET @IncrementalCounter = @incrementalCounter +1
END
Reference:
http://www.sqlservercentral.com/Forums/Topic327280-319-1.aspx
Wednesday, November 30, 2011
JOB in Aricent : Walk-in interviews for Senior Engineer /Technical Leader (Testing) on December 3, 2011 - Gurgaon
From: Suchi Gupta
From: Aricent IT On Behalf Of HR_TA_iRefer
Sent: Wednesday, November 30, 2011 4:03 PM
Subject: Walk-in interviews for Senior Engineer /Technical Leader (Testing) on December 3, 2011 - Gurgaon
[cid:_2_071B09B8071B0450003D856B65257958]
Dear Friends,
We are in the process of hiring testing professionals for Senior Engineer –Testing/Technical Leader-Testing role. Please refer your friends and relatives whose profiles match with the following requirements to participate in the selection process.
Job Title: Senior Engineer-Testing/Technical Leader-Testing
Job Location: Gurgaon
Qualification: B.E / B.Tech / M.Tech / MCA
Experience: 3 - 7 years
Job Code
Designation
Job Location
Intranet Links
Internet Links
JOB931
Senior Engineer - Testing (Test Administrator)
Gurgaon
Read More<http://home.intra.aricent.com/functions/hr/Lists/iRefer%20Jobs/DispForm.aspx?ID=932>
Read More<https://vpn.aricent.com/+CSCO+1h756767633A2F2F75627A722E766167656E2E6E6576707261672E70627A++/functions/hr/Lists/iRefer%20Jobs/DispForm.aspx?ID=932>
JOB932
Technical Leader - Testing (Configuration Lead)
Gurgaon
Read More<http://home.intra.aricent.com/functions/hr/Lists/iRefer%20Jobs/DispForm.aspx?ID=933>
Read More<https://vpn.aricent.com/+CSCO+1h756767633A2F2F75627A722E766167656E2E6E6576707261672E70627A++/functions/hr/Lists/iRefer%20Jobs/DispForm.aspx?ID=933>
JOB933
Senior Engineer - Testing (System Tester)
Gurgaon
Read More<http://home.intra.aricent.com/functions/hr/Lists/iRefer%20Jobs/DispForm.aspx?ID=934>
Read More<https://vpn.aricent.com/+CSCO+1h756767633A2F2F75627A722E766167656E2E6E6576707261672E70627A++/functions/hr/Lists/iRefer%20Jobs/DispForm.aspx?ID=934>
JOB934
Technical Leader - Testing (Routing/Switching)
Gurgaon
Read More<http://home.intra.aricent.com/functions/hr/Lists/iRefer%20Jobs/DispForm.aspx?ID=935>
Read More<https://vpn.aricent.com/+CSCO+1h756767633A2F2F75627A722E766167656E2E6E6576707261672E70627A++/functions/hr/Lists/iRefer%20Jobs/DispForm.aspx?ID=935>
JOB935
Technical Leader - Testing (Integration Engineer)
Gurgaon
Read More<http://home.intra.aricent.com/functions/hr/Lists/iRefer%20Jobs/DispForm.aspx?ID=936>
Read More<https://vpn.aricent.com/+CSCO+1h756767633A2F2F75627A722E766167656E2E6E6576707261672E70627A++/functions/hr/Lists/iRefer%20Jobs/DispForm.aspx?ID=936>
Candidates meeting the eligibility criteria can appear for the selection process as per the below mentioned schedule:
Location
Gurgaon
Date
December 3, 2011 (Saturday)
Time
9:30 AM – 2:00 PM
Venue
Aricent Group
Plot 17,
Sector 18, Electronic City,
Gurgaon
Contact Person
Kamini Kinra
Terms and Conditions:
• Freshers and 2011 graduates are not applicable
• Candidates will be expected to make their own arrangements for travel and accommodation
• To avail the referral bonus, candidates must mention the referrer's employee ID at the time of interview
• All terms and conditions of the Aricent iRefer program will apply
So hurry up & ask your referrals to avail this great opportunity!



