2012-06-14 72 views
2

我有一個名爲Bowzer的表,它有一個名爲Type的列。更新查詢中未顯示SQL Server 2008列名'類型'

當我嘗試運行此查詢時,SSMS無法識別列Type

這裏是我的查詢

update Bowzer 
set inserted_by = ISNULL(inserted_by, 'Auto') 
where (bowzer_id = 8 and inserted_by is null and type='CRUDE') 

這不認列Type並給出了一個錯誤

無效列名類型

不允許此列名Type

另外,我要檢查,如果Inserted_By列爲空,然後用價值Auto

如何做呢更換呢?

編輯 - 1 DDL表Bowzer

CREATE TABLE [dbo].[Bowzer](
    [bowzer_id] [numeric](18, 0) IDENTITY(1,1) NOT NULL, 
    [bowzer_no] [nvarchar](20) NULL, 
    [quantity] [numeric](18, 0) NULL, 
    [dip1] [numeric](18, 0) NULL, 
    [Cmpt_Capacity1] [numeric](5, 0) NULL, 
    [dip2] [numeric](18, 0) NULL, 
    [Cmpt_Capacity2] [numeric](5, 0) NULL, 
    [dip3] [numeric](18, 0) NULL, 
    [Cmpt_Capacity3] [numeric](5, 0) NULL, 
    [dip4] [numeric](18, 0) NULL, 
    [Cmpt_Capacity4] [numeric](5, 0) NULL, 
    [dip5] [numeric](18, 0) NULL, 
    [Cmpt_Capacity5] [numeric](5, 0) NULL, 
    [expiry_date] [datetime] NOT NULL, 
    [status] [bit] NOT NULL, 
    [inserted_on] [datetime] NULL, 
    [inserted_by] [nvarchar](20) NULL, 
    [Type] [nvarchar](50) NULL, 
CONSTRAINT [PK_Bowzer] PRIMARY KEY CLUSTERED 
(
    [bowzer_id] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

GO 
+0

你確定你有一列在「Bowzer」中命名爲'type'?你可以爲Bowzer添加[DDL](http://en.wikipedia.org/wiki/Data_Definition_Language)嗎? –

+0

我假設你的意思是DropDownList的術語DDL。是的,我可以做到這一切,它只是SSMS,不會承認這個專欄名稱,intellisense不會顯示它。 –

+0

DDL =數據定義語言http://en.wikipedia.org/wiki/Data_Definition_Language –

回答

4

試試這個

update Bowzer 
set inserted_by = ISNULL(inserted_by, 'Auto') 
where (bowzer_id = 8 and inserted_by is null and [type]='CRUDE') 
+0

不,智能感知也無法識別它,它只顯示三種內置功能。 1)TYPEPROPERTY(2)TYPE_ID(3)TYPE_NAME ....我認爲intellisense也應該顯示字段名稱'Type',不是嗎? –

+0

基本上是的,它應該顯示。 –

+0

但它沒有顯示,我正在使用SQL Server 2008 R2 –

1

用於檢查是否爲空,用例

Update Bowzer set inserted_by = Case When inserted_by IS NULL THEN 'Auto' Else inserted_by End 
where (bowzer_id = 8 and inserted_by is null and [type]='CRUDE')