SQL Server 2008 feature support survey

Since the release of SQL Server 2008, we have heard from customers looking for a JDBC driver that supports SQL Server 2008.  I would like to use this post to ask you, our customers, which features of SQL Server 2008 do you need supported through the JDBC driver.  We want to make sure we are delivering features which adds the most value to our customers and your feedback will help us help you.

Here are some features to get things started:

  • Date/Time/Datetime2/DatetimeOffset data type

  • Sparse Columns

  • Table-Value Parameters

  • T-SQL MERGE command

  • Filestream data type

  • Spatial data type

  • HierarchyID data type

Please add any you don't see on the list.  If there are multiple features you need, please rank them in order of priority.

Jimmy Wu
SQL Server JDBC Team

Comments (36)
  1. azgard says:

    +2 Date/Time/Datetime2/DatetimeOffset data type

    +1 Filestream data type

    Why you must support explicit Sparse Columns? Is it not only a internal behavior?

  2. dpblogs says:


    Yes, you are mainly right that Sparse Columns is primarily an SQL Server internal behavior, but the column metadata needs to be updated to allow users to discover that it is a Sparse Column.

    We will think through all of the usage experience our customers will have through the driver if/when we tackle this SQL Server feature as well as all other features.


  3. Wes Clark says:

    1. Date/Time/Datetime2/DatetimeOffset data type

    2. Sparse Columns

    3. Spatial data type

    4. HierarchyID data type

    ?. Table-Value Parameters

    ?. T-SQL MERGE command

    ?. Filestream data type

    By ? I mean we haven’t figured out if these would be of value yet.

  4. Jiri W. says:

    It is very interesting for us to use JDBC driver to read an write Spatial data type. Now, we can use only Oracle SDO.

  5. Otto says:

    We are looking foreward to support for spatial data type.

  6. Otto Axt says:

    We are looking foreward to support for spatial data type.

  7. Sagar I says:


    Support for "Bulk Copy"?

    I was half way done porting the "Bulk Copy" using the current microsoft jdbc driver. Used the com.microsoft.jdbc.sqlserver.tds package to do that.

    and now when I look at your new classes, this package is gone, so I’ll have to go back to JNI.

    Java applications deserves a "Bulk Copy" implementation, where one can call bcpInit, bcpSendRow, bcpBatch, bcpDone. without using the stupid file logic or JNI.

  8. xavi says:

    To conform with type 4 JDBC driver.

  9. Vivek says:

    Support connecting using Windows credentials from UNIX by specifying them on the connection string.

  10. dpblogs says:

    Thank-you all for your feedback.  They are very helpful to us.


    Jimmy Wu

  11. Brian Clark says:

    Most important:

    1. Date/Time/Datetime2/DatetimeOffset data type

    2. Does anything need to be added to the driver to support wide tables (ie. tables with more than 1024 columns)? If so, then that would be important to us as well.

    3. Bulkcopy

    4. Sparse columns


  12. Dan Heyl says:

    Spatial data type is most important for us.

  13. jasdue says:

    Hi Jimmy,

    When are you thinking to deliver sql 2008 jdbc driver? It is really urgent for me.


  14. dpblogs says:


    At this time I am not able to provide a timeframe when we will release a JDBC driver that support new features introduced in SQL Server 2008.  We are actively looking into this.


    Jimmy Wu

  15. Michael says:

    DateTime2 Support is very important:

    – PreparedStatement.setTimestamp()

    based on milliseconds (without rounding)

    – Metadata should return the correct DataType not nvarchar.

    For us this feature is important to migrate an Oracle application to SQLServer without refactoring the hole Timestamp handling.


  16. Rob radina says:

    I would like better performance. We have an application that opens two resultsets of ~6 million rows and reads through all the data. The latest JTDS open source driver benchmark is about 2.7 minutes.  The MS 2.0 driver benchmark is 4.9 minutes.  Both resultsets have a small number of columns comprised of decimal data. Source DB is SQL 2008. JRE is 1.6.    

  17. Rob radina says:

    I would like better performance. We have an application that opens two resultsets of ~6 million rows and reads through all the data. The latest JTDS open source driver benchmark is about 2.7 minutes.  The MS 2.0 driver benchmark is 4.9 minutes.  Both resultsets have a small number of columns comprised of decimal data. Source DB is SQL 2008. JRE is 1.6.    

  18. dpblogs says:

    Hi Rob,

    Good performance is certainly an important feature of any release!  When reading that much data, latency should be dominated by network and server disk I/O.  Changing the client driver shouldn’t make that big of a difference.

    Can you share your benchmark table schema, and perhaps the benchmark code, with us at https://connect.microsoft.com/SQLServer/feedback/CreateFeedback.aspx ?  Be sure to include "JDBC" somewhere in the title.  You’ll be able to track our investigation of the issue.


    –David Olix [SQL Server]

  19. Jeramyn says:

    datetime2 support would be very much appreciated, we are currently having to use the setText() workaround to get proper millisecond resolution in dates since a date at the end of the day shows up tomorrow in the database.

  20. Mugunthan Mugundan [MSFT] says:

    For those interested in Spatial types, would Windows only support for Spatial types be good enough? We have some geo spatial libraries written in C++ would be hard to port all of them to Java in the short term. Also, do you use JPOX spatial types in your applications.

  21. RG says:

    Table-Value Parameters – I am looking for a Java JDBC example on the "Table-Value Parameters" usage ? please let me know if you all have any URL on this.

  22. dpblogs says:

    Hello RG,

    We currently do not support TVPs. However, we are considering supporting them in a future release. Could you describe your TVP usage scenario? Thanks so much.

    –Tres London [SQL Server]

  23. RG says:

    Hi Tres,

    I have several SP’s that requires passing in list of key value pair’s to the SP (array with a record like structure). so if a TVP is not supported currently …then I guess XML is the only option. I was under the impression that since TVP is supported in Dot Net , it is available for Java as well. This is a very important feature ..Oracle has been supporting this type of interface for past decade.

  24. OC says:

    TVPs are very important to us. We have a Java service layer in front of SQL Server DB data layer for high volume OLTP. Currently we spend a lot of cycles breaking down comma-delimited lists using a T-SQL UDF so we can join to a table inside stored procs. Having this data structure built in Java first and passed into the proc allows us to spend less time in the data tier. I suspect this was a major motivator for creating TVPs in the first place…please bring them to Java the way you have for .Net.

  25. noeldr says:

    TVP, TVP, TVP, did I said TVP? 🙂

  26. dpblogs says:

    Thank you for the feature request – keep them coming. Unfortunately TVPs will not be making it into the next release. We will be publishing a roadmap for this next release on the blog in a bit to help.

  27. CV says:

    Only feature that would benefit us greatly would be

    Table-Value Parameters.

    An example use would be saving updates from web screens to databases. We dont like the syntax of XML and find passing delimited strings ‘messy’ and problem prone.

    Hmm, notice Oracle supports this concept….

  28. Larry Li says:

    Support of Datatime2 type in PreparedStatement.setTimestamp().  We are migrating Oracle to SQLServer and can not set Oracle datetime prior to 1753 to sqlserver without using Datatime2 type but current jdbc driver does not support it.  Big minus!

  29. Mark Foley says:

    As mentioned in your post http://social.msdn.microsoft.com/Forums/en-US/sqldataaccess/thread/7b4eac48-4eee-43a3-81a7-de41440e846c I would definitely like to see the JDBC driver be able to support secure, cross platform login authentication. In particular, I have a linux web server hosting LAN applications in a Windows network. I would like to be able to log the users on the SQL Server using Windows Authentication and not have to create new logins for everyone (out of sync with their workstation login IDs, passwords and expirations), or have to create a common SQL Server login where the individual user can’t be identified (which is what I do now). If you have any question on this comment, my email address is mfoley@novatec-inc.com

  30. amisaify says:

    Thank you Mark for providing your input. I will certainly contact you if I have further questions on your feedback.



  31. Swetha says:


    I am looking for a way to pass list of records, where each record having three columns, to Sql Server stored procedure. I have found that there are two ways of doing this – 1. Using OpenXML 2. TVP.

    I have studied that passing a large XML through network to the database might cause problems. So am i left with the only option of using TVP's? If so can some one give me the link, that shows java example usage of it?



  32. Nimish says:

    Hi, We need support for the CURSOR data type. This will allow us to read multiple result-sets at a time easily(instead of multiple database calls), thus making more people switch to SQL Server 2008

  33. Steve says:

    I would like to see the driver support  secure cross-platform single sign-on capability.

  34. @Steve  The 4.0 version of the Microsoft JDBC Driver (Released March 2012) supports pure Java Kerberos authentication that can be implemented in a cross realm and cross platform environment.  Here is a link to more details on our Kerberos authentication.  msdn.microsoft.com/…/gg558122.aspx

    Please let us know if you have additional requirements beyond what we offer today.

  35. Sekar says:

    Can you please include FILESTREAM data type support (i.e File Streaming API ) similar to the .NET provided SQLFileStream class


  36. William Buchanan says:

    Connection options would be my #1.  Not sure why MS would design a driver that operates in the JVM with a dependency on a Windows binary (e.g., the .dll used for windows authentication), but it continues to be a pain for those of us needing to communicate with Window products from non-Windows operating systems.

Comments are closed.

Skip to main content