首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

如果提示数据类型转换导致越界如何修改

2012-03-30 
如果提示数据类型转换导致越界怎么修改?程序如下:CREATETABLEdbo.Dept(DeptIDINTIDENTITYNOTNULLPRIMARYKE

如果提示数据类型转换导致越界怎么修改?
程序如下:
CREATE   TABLE   dbo.Dept(
    DeptID   INT   IDENTITY   NOT   NULL   PRIMARY   KEY   NONCLUSTERED,
    DeptName   VARCHAR(50)NOT   NULL,
    RaiseFactor   NUMERIC(4,2)
          )
          ON   [primary]
go
Create   TABLE   dbo.Employee(
    EmployeeID   INT   IDENTITY   NOT   NULL,
    DeptID   INT   FOREIGN   KEY   REFERENCES   Dept,
    LastName   VARCHAR(50)   NOT   NULL,
    FirstName   VARCHAR(50)   NOT   NULL,
    Salary   INT,
    PerformanceRating   NUMERIC(4,2),
    DateHire   DATETIME,
    DatePosition   DATETIME
          )
    ON   [primary]
go
--build   the   sample   data
INSERT   dbo.Dept   VALUES   ( 'Enginerring ',1.2)
INSERT   dbo.Dept   VALUES   ( 'Sales ',.8)
INSERT   dbo.Dept   VALUES   ( 'IT ',2.5)
INSERT   dbo.Dept   VALUES   ( 'Manufacturing ',1.0)
go
INSERT   dbo.Employee   VALUES(1,   'Smith ',   'Sam ',   54000,   2.0,   '1/1/97 ',   '4/1/2001 ')
INSERT   dbo.Employee   VALUES(1,   'Nelson ',   'Slim ',   78000,   1.5,   '9/1/88 ',   '1/1/2000 ')
INSERT   dbo.Employee   VALUES(2,   'Ball ',   'Sally ',   45000,   3.5,   '2/1/99 ',   '1/1/2001 ')
INSERT   dbo.Employee   VALUES(2,   'Kelly ',   'Jeff ',   85000,   2.4,   '10/1/83 ', '9/1/1998 ')
INSERT   dbo.Employee   VALUES(3,   'Guelzow ',   'Dave ',   120000,   4.0,   '7/1/95 ',   '6/1/2001 ')
INSERT   dbo.Employee   VALUES(3,   'Cliff ',   'Melissa ',   95000,   1.8,   '2/1/99 ',   '9/1/1997 ')
INSERT   dbo.Employee   VALUES(4,   'Reagan ',   'Frankie ',   75000,   2.9,   '4/1/00 ',   '4/1/2000 ')
INSERT   dbo.Employee   VALUES(4,   'Adams ',   'Hank ',   34000,   3.2,   '9/1/98 ',   '9/1/1998 ')

执行结果:

服务器:   消息   242,级别   16,状态   3,行   1
从   char   数据类型到   datetime   数据类型的转换导致   datetime   值越界。
语句已终止。
服务器:   消息   242,级别   16,状态   3,行   1
从   char   数据类型到   datetime   数据类型的转换导致   datetime   值越界。
语句已终止。
服务器:   消息   242,级别   16,状态   3,行   1
从   char   数据类型到   datetime   数据类型的转换导致   datetime   值越界。
语句已终止。
服务器:   消息   242,级别   16,状态   3,行   1
从   char   数据类型到   datetime   数据类型的转换导致   datetime   值越界。
语句已终止。
服务器:   消息   242,级别   16,状态   3,行   1
从   char   数据类型到   datetime   数据类型的转换导致   datetime   值越界。
语句已终止。
服务器:   消息   242,级别   16,状态   3,行   1
从   char   数据类型到   datetime   数据类型的转换导致   datetime   值越界。
语句已终止。
服务器:   消息   242,级别   16,状态   3,行   1


从   char   数据类型到   datetime   数据类型的转换导致   datetime   值越界。
语句已终止。
服务器:   消息   242,级别   16,状态   3,行   1
从   char   数据类型到   datetime   数据类型的转换导致   datetime   值越界。
语句已终止。


[解决办法]
--更改为

INSERT dbo.Dept VALUES ( 'Enginerring ',1.2)
INSERT dbo.Dept VALUES ( 'Sales ',.8)
INSERT dbo.Dept VALUES ( 'IT ',2.5)
INSERT dbo.Dept VALUES ( 'Manufacturing ',1.0)
go

SET DATEFORMAT mdy --加入时间格式化

go

INSERT dbo.Employee VALUES(1, 'Smith ', 'Sam ', 54000, 2.0, '1/1/97 ', '4/1/2001 ')
INSERT dbo.Employee VALUES(1, 'Nelson ', 'Slim ', 78000, 1.5, '9/1/88 ', '1/1/2000 ')
INSERT dbo.Employee VALUES(2, 'Ball ', 'Sally ', 45000, 3.5, '2/1/99 ', '1/1/2001 ')
INSERT dbo.Employee VALUES(2, 'Kelly ', 'Jeff ', 85000, 2.4, '10/1/83 ', '9/1/1998 ')
INSERT dbo.Employee VALUES(3, 'Guelzow ', 'Dave ', 120000, 4.0, '7/1/95 ', '6/1/2001 ')
INSERT dbo.Employee VALUES(3, 'Cliff ', 'Melissa ', 95000, 1.8, '2/1/99 ', '9/1/1997 ')
INSERT dbo.Employee VALUES(4, 'Reagan ', 'Frankie ', 75000, 2.9, '4/1/00 ', '4/1/2000 ')
INSERT dbo.Employee VALUES(4, 'Adams ', 'Hank ', 34000, 3.2, '9/1/98 ', '9/1/1998 ')
GO

热点排行
Bad Request.