CREATE TABLE ft (
ID int IDENTITY (1, 1) NOT NULL ,
Code char (40) NOT NULL ,
ImageType char (1) NULL ,
Path char (120) NULL 
)
我想让ID为关键字,怎么设置,
然后再插入一条记录的ID=0(系统默认从ID从1开始),
高手帮忙补全命令把,
如果想通过ado自动创建这个表,应该怎么写,ado怎么设置

解决方案 »

  1.   

    ALTER TABLE ft WITH NOCHECK ADD 
    CONSTRAINT PK_ft PRIMARY KEY  CLUSTERED 
    (
    id
    )  ON [PRIMARY] 
    GO
      

  2.   

    insert into ft(Code,imagetype,path) values(null,null,null)
      

  3.   

    在插入语句后再用:
    update ft set id=0
      

  4.   

    CREATE TABLE ft (
    ID int IDENTITY (0, 1) NOT NULL ,
    Code char (40) NOT NULL ,
    ImageType char (1) NULL ,
    Path char (120) NULL 
    )
      

  5.   

    Server: Msg 8102, Level 16, State 1, Line 1
    Cannot update identity column 'ID'.
      

  6.   

    前面第二、三次发言,关于从0开始,我写错了,应该用第五次发言:
    ID int IDENTITY (0, 1) NOT NULL ,起始值改成0就可以了
      

  7.   

    好,谢谢,马上结铁,
    我想用ado执行上面的语句,怎么做?
      

  8.   

    我有一段bde的代码,仅供参考:
    先把上面的sql代码放到文本文件里,为了能见更多的表,每条sql语句用一行“go”做间隔
      try
        assignfile(djtext,文件名);
        reset(djtext);
      except
        on Einouterror do
          begin
            application.messagebox('打开文件错误','提示',48);
            closefile(djtext);
            exit;
          end;
      end;  query1.close;
      query1.sql.clear;
      while not eof(djtext) do
        begin
          try
            readln(djtext,tmpstr);
            if UpperCase(trim(tmpstr))='GO' then
            begin
              query1.ExecSQL;
              query1.close;
              query1.sql.clear;
            end
            else
            begin
              if (trim(tmpstr)<>'') and (copy(tmpstr,1,2)<>'/*') then query1.sql.add(tmpstr);//判断是否是空行,或者是注释行
            end;
          except
            begin
              application.messagebox('发生错误','提示',48);
              closefile(djtext);
              exit;
            end;
          end;
        end;
      closefile(djtext);
      query1.close;
      

  9.   

    用这种方式还能运行sqlserver反向生成的sql脚本