Professional Documents
Culture Documents
By Deanna Dicken The questions you may wish to ask or that will be asked during a SQL Server Developer interview will vary. Deanna Dicken shares the top 9 interview questions she asks when interviewing a potential SQL Server developer.
Introduction
In my many years in Information Technology, I have performed so many SQL Server interviews that I have long since lost count. I thought I would share with you some of the questions I find important when interviewing a potential SQL Server developer.
Related Articles
Top 5 Basic Concept Job Interview Questions for Oracle Database PL/SQL Developers Oracle DBA Job Interview - Nailing a Fairly Common Question Interview Tips for Aspiring Junior DBAs Oracle Technical Interview
Both types of indexes facilitate faster lookups and joins. As a follow-up question, should they get this right, ask them to tell you how many clustered indexes you can have on a table. The answer should be one. Rows can only be physically stored with one ordering.
What are DML triggers and what types of triggers can you have on a SQL Server table?
A trigger, as the name implies, is a collection of SQL statements triggered to execute by an insert, update, or delete action on a table that affects its contents. INSTEAD OF and AFTER can be specified for each trigger. When INSTEAD OF is specified, the trigger takes the place of the triggering action. So if you had an INSTEAD OF UPDATE trigger, the code inside the trigger would be executed instead of the original update. AFTER triggers are the same as the FOR used in earlier versions of SQL Server. This just means the trigger will execute following the original action. An AFTER UPDATE trigger will allow the update to complete and then the update trigger will execute. For more information, see DML Trigger Planning Guidelines.
called from the TRY block with a severity between 11 and 19 will cause execution to jump to the CATCH block.
Conclusion
The questions you may wish to ask or that will be asked of you will vary (like your mileage). Questions should be tailored to the job for which the candidate is applying. For instance, if you don't use triggers in your workplace, does it really matter if the candidate has a working knowledge of SQL Server triggers?
I like to phrase this interview question this way because Im not saying the DBA is right Im just asking the developer to explain the DBAs point of view. I dont have a problem with the developer rolling their eyes as they explain the answer, but I have a problem with the developer being surprised by the question. The candidate gets bonus points if they seem even vaguely aware of the terms set-based processing and rowbased processing, but thats purely a bonus. (I wish I could say that these concepts are requirements, but in todays economic market, companies dont always want to pay top dollar to get the best candidates.)
9. Where do you like business logic in the app or in the database? Why?
Personally, I like stored procedures because theyre easier for us DBAs to test, tune and tweak. On the other hand, the developer community isnt always as fond of stored procs. For their side, see these posts by Jeff Atwood:
Who Needs Stored Procedures, Anyway? Stored Procedures vs Ad-Hoc SQL My Database is a Web Service
I dont mind what arguments the coder candidate uses, but I want to see em put some thought into it. No matter which angle they take, Ill play the devils advocate and prod them with arguments just to see how they react.
Not In The Oprah Book Club, Oddly Start with just that open-ended interview question, and if they have trouble getting started, give them a scenario. Say weve got a table for Orders, and a table for OrderDetails. Someone places an order for two books Bacon: A Love Story and the hit bestseller Eat What You Want and Die Like A Man. Tell me what happens. After theyve answered, ask them when transactions should not be used. I dont want my developers wrapping anything inside a transaction unless it absolutely needs to be. (Unlike bacon, which should be used as often as possible for wrapping purposes.)
If they stumble on the question, circle back to the Orders and OrderDetails tables we used as examples earlier. Whats an orphan? How do we make sure that we dont end up with OrderDetails for records with no matching Order record? Where are all the places we could enforce referential integrity? (Think foreign keys, triggers, the application, or not at all.) Have you worked in places where there was no referential integrity, and what problems did you run into?
6. Whats the fastest way to get a thousand records into the database?
Im not looking for the best answers Im just looking to hear that theyve done some work to performance tune their queries. If theyre doing fully logged individual record inserts, one at a time, into a data warehouse-size system, were going to have problems down the road. (Yes, Ive actually worked with a BI developer that did millions of individual inserts per night in full recovery mode and thought the performance was the databases fault.) Bonus points if they link back to the previous interview question and talk about whether or not they should disable constraints or referential integrity during data loads. (I dont care what their final answer is, but I just want them to know the pros and cons.)
If they say its never happened, rest assured its going to happen soon.
1. What is DESCRIBE command in SQL Server 2005? What is its purpose? How to use it? DESCRIBE is used to see table structure. In SQL server 2005 we can use sp_columns, sp_tables or sp_help. sp_columns will show list of columns and its details in table. sp_tables will show list of tables in the databas 2. What is RDBMS? Relational Data Base Management Systems (RDBMS) are database management systems that maintain data records and indices in tables. Relationships created and maintained across tables between data. Interdependencies between these tables are defined by the data values. RDMS is based upon relational modal of E.F.Codd 3. Can UNIQUE KEY in SQL Server 2005 have two or more NULL? SQL server 2005 can not have more then one NULL, because in SQL server 2005 every null is having same value. UNIQUE KEY in ORACLE can have more then one NULL values as every NULL in ORACLE is having unique value.
4. What is a "trigger" in SQL Server 2005? In any database including SQL Server 2005 a trigger is procedure that initiates on INSERT, DELETE or UPDATE actions. Before SQL Server 2000 Triggers are also used to maintain the referential integrity. We can not execute triggers explicitly; the DBMS automatically fires the trigger when data modification events (INSERT, DELETE or UPDATE) happened in the associated table. Triggers are same as stored procedures in term of procedural logic that is stored at the database level. Stored procedures are executed explicitly and triggers are event-drive. Triggers can also execute stored procedures. Nested Trigger: A trigger can also contain INSERT, UPDATE and DELETE logic within itself, so when the trigger is fired because of data modification it can also cause another data modification, thereby firing another trigger. A trigger that contains data modification logic within itself is called a nested trigger. See Create Trigger for more 5. What is View in Database (SQL Server 2005, ORACLE)? As per the theory of database (which includes SQL Server 2005, Oracle etc.) a view can be thought of stored SQL query which result can be accessible as a table. It can be used for retrieving data, as well as updating or deleting rows. But database view does not have physical schema The results of using a view are not permanently stored in the database. The data accessed through a view is actually constructed using standard T-SQL select command and can come from one to many different base tables or even other views. See more on Database Views 6. How do you optimize stored procedures in SQL Server 2005? 1. Use as much as possible WHERE clause filters. Where Clause is the most important part for optimization 2. Select only those fields which really require. 3. Joins are expensive in terms of time. Make sure that use all the keys that relate the two tables together and don't join to unused tables, always try to join on indexed fields. The join type is important as well (INNER, OUTER).
7. How is the error handling in stored procedures of SQL Server 2005? In previous versions of SQL Server you would handle exceptions by checking the @@error global variable immediately after an INSERT, UPDATE or DELETE, and then perform some corrective action if @@error did not equal zero. SQL Server 2005 provides structured exception handing through TRY CATCH block as other programming language like JAVA, C# etc.
BEGIN TRY RAISERROR ('Yaa, I ma the problem', 16,1) END TRY BEGIN CATCH SELECT ERROR_NUMBER() as ERROR_NUMBER, ERROR_SEVERITY() as ERROR_SEVERITY, ERROR_STATE() as ERROR_STATE, ERROR_MESSAGE() as ERROR_MESSAGE END CATCH
ERROR_NUMBER() returns the number of the error. ERROR_SEVERITY() returns the severity. ERROR_STATE() returns the error state number. ERROR_PROCEDURE() returns the name of the stored procedure or trigger where the error occurred. ERROR_LINE() returns the line number inside the routine that caused the error. ERROR_MESSAGE() returns the complete text of the error message. The text includes the values supplied for any substitutable parameters, such as lengths, object names or times.
Can you explain about buffer cash and log Cache in sql server?
Latest answer: Buffer Cache: Buffer cache is a memory pool in which data pages are read. It performance of the buffer cache is indicated as follows:.............
Read answer
Explain the use of keyword WITH ENCRYPTION. Create a Store Procedure with Encryption.
Latest answer: WITH ENCRYPTION Indicates that SQL Server will convert the original text of the CREATE PROCEDURE statement to an encrypted format. Users that have no access to system................
Read answer
What is user defined datatypes and when you should go for them?
Latest answer: User defined datatypes is created by using base SQL Server data type by providing a descriptive name.................
Read answer
What is blocking?
Latest answer: Blocking happens when one connection from an application holds a lock and a second............
Read answer
Explain in brief how SQL server enhances scalability of the database system.
Latest answer: SQL Server has efficient ways to enhance scalability of the database system...............
Read answer
What are the ways available in SQL Server to execute SQL statements?
Latest answer: SQL Server uses different ways to execute SQL statements which are listed below................
Read answer
What is XPath?
Latest answer: XPath is a language defined by the W3C, used to select nodes from XML documents..............
Read answer
Define the rules for designing Files and File groups in SQL Server.
Latest answer: A file or file group can only be used by one database. For example, the files abc.mdf and abc.ndf contains.................
Read answer
Explain Data Definition Language, Data Control Language and Data Manipulation Language.
Latest answer: Data definition language is used to define and manage all attributes and properties of a database..............
Read answer
Explain GO Command.
Latest answer: GO Command is used to signal the end of a batch...............
Read answer
What is the significance of NULL value and why should we avoid permitting null values?
Latest answer: Null means no entry has been made. It implies that the value is either unknown or undefined............
Read answer
What is the STUFF and how does it differ from the REPLACE function?
Latest answer: STUFF function is used to insert a string into another string by deleting some characters specified.............
Read answer
3. COUNT 4. COUNTDISTINCT 5. MAX 6. MIN 7. STDEV 8. STDEVP 9. VAR 10. VARP By default, SUM is the aggregate function used for numeric data type.
S.No. Functionality
Expression
Colour for a placeholder inside of Format data in a text box =IIF(Fields!TotalDue.Value < a text box in the details row for a depending on value 10000,"Red","Black") Tablix Value for a placeholder inside of Dynamic page header or a text box that is placed in the footer content. page header or footer. ="Page " & Globals!PageNumber & " of " & Globals!TotalPages
Specify page breaks for Group expression for a group in a every 20 rows in a Tablix =Ceiling(RowNumber(Nothing)/20) Tablix. with no other groups. Shows the user ID of the person running the Value report To get first day of the month To get the current date Value Value
=User!UserID
5 6
=DateSerial(Year(Today()),Month(Today()),1) =Today()
Value
=DateAdd("d",1,DateSerial(Year(Today()),Month(Today())+1,1))
Drill Down Data retrieved at the same time as main report With the main report Slower since retrieves all data with main report Within main report
Drill Through Data retrieved one click on link of drill through report When link is clicked Faster (but does not retrieve all data with main report) Separately either in separate window or tab
Is displayed
Can we use custom code in SSRS? If so, explain how we can do.
Yes, we can. SSRS allows developer to add custom code in your report. You can write the code directly into embedded VB.Net and call it using property expression or you can write a custom class library and refer it in report server. The advantage of first method is that it is simple and easy to use but disadvantage is that it is available for that report only. While the second method has advantage of being available for multiple reports but it has much of configuration overhead. To write custom code, right click on Report Designer outside report body and select Properties and go to Code tab and you can write custom code here.
To add custom class library, right click on Report Designer outside report body and select Properties and go to Reference tab and add the reference by browsing to the assembly of your class library. Note that you need to create class library and then compile it before referencing it in your SSRS report.
Created
processed Use
Processing Output
Number of records presented is based on Number of records returned is based query. Note- Records processed on report parameter would be same as records on query parameter returned based on query parameter. Performance is good Full set of records is retrieved then filtered. Hence, performance is low
Item-level roles User can use any of predefined item-level roles or create their own roles by using combination of predefined item-level roles. Pre-defined Item-level roles are:1. Browser can navigate to report and run them. 2. My Reports these users rights is restricted to reports present in their MyReports folder. However, they can create, view and manage reports in their folder. 3. Publisher As name suggest, publisher user has rights to publish reports to Reporting Server database. 4. Content Manager has all permission at item-level.
Test your sql server knowledge with our multiple choice questions