[freetds] FreeTDS creating all fields as not null

Lowden, James K james.k.lowden at alliancebernstein.com
Thu Sep 21 14:07:27 EDT 2006


> From: Eloy Lafuente
> Sent: Thursday, September 21, 2006 12:37 PM
> 
> I'm using FreeTDS to handle one MSSQL 2005 server
> ...
> Everytime I create one table having NULL fields, they become NOT
> NULL in the target DB.
> 
> Curiously, executing the same CREATE TABLE statement from the "tsql"
> command line interface, the table is created properly (with NULL
> fields being NULL).

Whether a column in a CREATE TABLE statement is NULL or NOT NULL by
default (when not explicit in the DDL) depends on the connection options
(a/k/a session properties).  Cf. "dbcc useroptions".  Database options
also play a role, cf. sp_dboption.  In particular, see "When not
explicitly specified, column nullability follows these rules" in the
description of CREATE TABLE in books online.
(http://msdn2.microsoft.com/en-us/library/ms174979.aspx)

ODBC connections are given different session properties at connect time
than are db-lib connections.  The FreeTDS db-lib turns off the "I'm an
ODBC driver" bit when it logs in, whereas tsql does not, so tsql's
behavior will differ in this regard from a db-lib application e.g.
bsqldb or the PHP mssql extension.  

HTH.

--jkl



-----------------------------------------
The information contained in this transmission may be privileged and
confidential and is intended only for the use of the person(s) named
above. If you are not the intended recipient, or an employee or agent responsible
for delivering this message to the intended recipient, any review, dissemination,
distribution or duplication of this communication is strictly prohibited. If you are
not the intended recipient, please contact the sender immediately by reply e-mail
and destroy all copies of the original message. Please note that we do not accept
account orders and/or instructions by e-mail, and therefore will not be responsible
for carrying out such orders and/or instructions.  If you, as the intended recipient
of this message, the purpose of which is to inform and update our clients, prospects
and consultants of developments relating to our services and products, would not
like to receive further e-mail correspondence from the sender, please "reply" to the
sender indicating your wishes.  In the U.S.: 1345 Avenue of the Americas, New York,
NY 10105.



More information about the FreeTDS mailing list