2012-06-14 71 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')