程序如下:
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 值越界。
语句已终止。

解决方案 »

  1.   

    --更改为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)
    goSET DATEFORMAT mdy  --加入时间格式化goINSERT 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
      

  2.   

    楼上的高我想在insert的时候改为convert(smalldatetime,'1/1/97')应该也可以
      

  3.   

    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/1997', '4/1/2001')
    INSERT dbo.Employee VALUES(1, 'Nelson', 'Slim', 78000, 1.5, '9/1/1988', '1/1/2000')
    INSERT dbo.Employee VALUES(2, 'Ball', 'Sally', 45000, 3.5, '2/1/1999', '1/1/2001')
    INSERT dbo.Employee VALUES(2, 'Kelly', 'Jeff', 85000, 2.4, '10/1/1983','9/1/1998')
    INSERT dbo.Employee VALUES(3, 'Guelzow', 'Dave', 120000, 4.0, '7/1/1995', '6/1/2001')
    INSERT dbo.Employee VALUES(3, 'Cliff', 'Melissa', 95000, 1.8, '2/1/1999', '9/1/1997')
    INSERT dbo.Employee VALUES(4, 'Reagan', 'Frankie', 75000, 2.9, '4/1/1900', '4/1/2000')
    INSERT dbo.Employee VALUES(4, 'Adams', 'Hank', 34000, 3.2, '9/1/1998', '9/1/1998')
    改成这样也可以,关键是要弄明白datetime的下限日期,日期不能少于1900年,你这样写'1/1/97'是不会被识别的。
    回答完毕哈!