我是在用java连接sqlserver,刚开始学,写了一个测试一下,下面是我的JAVA代码:package sqltest;//JAVA连接数据库没有问题
import java.sql.*;
public class SqlTest {
public static String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
public static String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=test";
public static String userName="sa";
public static String userPwd="123";
public static void main(String[] args) throws Exception {
Connection conn=null;
Statement stmt=null;
Class.forName(driverName);
conn=DriverManager.getConnection(dbURL,userName,userPwd);
stmt=conn.createStatement();
stmt.executeUpdate("insert into person4(pid,name,age,salary)values('1','张三',30,9000.0)");
conn.close();
}
}下面是SQLSERVER中的查询的代码:create table person4(
pid int primary key not null,
name varchar(20) not null,
age int not null,
-- birthday DATE not null,//另外问一个问题,这里为什么提示我说没有DATE这个数据类型呢?
salary float not null,
)
insert into person4(pid,name,age,salary)values('1','张三',30,9000.0);然后我的问题是,怎样写identify语句,或者说怎么用(我百度过了,没找到合适的答案),才能让我的pid字段自增呢?

解决方案 »

  1.   

    identify(1,1)就是从一开始,每次增加一
      

  2.   


    create table person4(
        pid            int    identity(1,1)        primary key not null,
        name        varchar(20) not null,
        age            int            not null,
        birthday    datetime        not null,
        salary        float        not null,
    )
      

  3.   


    insert into person4(name,age,salary,birthday)values('张三',30,9000.0,'')插入的话 可以不用插入指定的 pid 
    当然也可以指定
      

  4.   


    create table person4(
        pid int identity(1,1) primary key,
        name varchar(20) not null,
        age int not null,
    --birthday DATE not null, -- 如果是SQLServer2008版本,这样写可以
    birthday datetime not null, -- 如果是SQLServer2008以下版本,这样写可以
        salary float not null
    )
    insert into person4(name,age,birthday,salary)values('张三',30,'2011-04-01 00:00:00',9000.0);
      

  5.   

    create table student(
           sno int identity(1000,1) primary key,
           sname varchar(20) not null,
           sage smallint)上面是一个例子:sno为主键,每添加一行,其值从1000开始自动加1,以后每插入一行记录(不用插入sno的值),sno都会在原来的基础上加1.
      

  6.   

    谢谢,那个"datetime"的问题解决了,我的是2005版的,然后insert语句按照你的方式写,会提示这样的错误:
    消息 515,级别 16,状态 2,第 1 行
    不能将值 NULL 插入列 'pid',表 'test.dbo.person';列不允许有空值。INSERT 失败。
    语句已终止。
      

  7.   

    不好意思,又突然可以了,但是我把那个insert语句复制到java中的时候执行,居然说我对象名无效,郁闷中~
      

  8.   

    我晕,是 public static String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=test";
    中的DatabaseName写成了DatabaceName了,那这个DatabaseName是个什么东西,为什么写错了也不报错呢?