2011-03-21 130 views
1

聲明列僅與Allow Nulls = Yes相比,聲明它與Default Value or Binding = NULLAllow Nulls = Yes都有區別嗎?SQL Server NULL和DEFAULT列規範

特別是我很感興趣,如果有相對於JDBC和wasNull方法語義不同。我的印象是,Allow Nulls = Yes(沒有DEFAULT規範)足以允許您從INSERT子句中排除列,並且期望插入的行中該字段的值被賦予SQL NULL值...

它已經向我建議wasNull行爲不端專門爲我的數據庫中一個nvarchar字段,從使用結果集的getString方法的時候,我沒有爲NULL明確指定的默認結果集檢索...

回答

1

您可以聲明一個列的默認值爲NULL,但這是一件毫無意義的事情。我期望它達到的目的是爲了使插入過程緩慢下來(因爲它必須查找默認值)。 Allow Nulls = Yes應該足夠了。

我沒有看到wasNull是如何特別進入的,因爲就我所知,在消費結果集時使用wasNull,而不是在執行插入操作時使用wasNull

+0

事實上,根據數據類型,聲明欄有NULL'的'的默認值可能是需要做什麼。 – 2011-03-21 15:45:49

+0

@邁克爾 - 你有沒有想到的例子? – 2011-03-21 15:47:31

+0

@Damien:查看我答案中的鏈接。 – 2011-03-21 15:47:58

1

簡單地使該列允許空值並不能保證它的值將NULL如果不是在INSERT語句的列列表中提供。

Books Online具有參數標題下的血淋巴細節。看看(column_list)

+0

看到更新的問題 – vicatcu 2011-03-21 22:39:47