1

SQL Server でデータベースを作成しようとしていますが、エラーが発生し続けます。スクリプトを見て、どうにか台無しにしていないか確認していただけますか?

  drop database if exists cptc;

create database cptc;

use cptc;

drop table if exists staff;

create table staff (
  staffID int not null auto_increment,
  fname varchar(25),
  lname varchar(25),
  title varchar(50),
  phone varchar(10),
  building varchar(10),
  room varchar(10),
  PRIMARY KEY(staffID),
FULLTEXT (fname,lname)  
)ENGINE = MYISAM;

INSERT INTO staff VALUES ('','michael','herrera','doctor','2539703420','B14','122');
INSERT INTO staff VALUES ('','holly','herrera','teacher','2534667896','B35','116');
INSERT INTO staff VALUES ('','jesse','kirsch','professor','2534567890','B12','112');
INSERT INTO staff VALUES ('','mark','wahlberg','professor','5552345678','B01','112');
INSERT INTO staff VALUES ('','philip','spears','technician','2065672345','B12','123');
INSERT INTO staff VALUES ('','andrew','jackson','teacher','2061234567','B32','101');
INSERT INTO staff VALUES ('','annie','smith','mechanic','2533345609','B23','102');
INSERT INTO staff VALUES ('','alfred','hills','teacher','2535821513','B14','103');
INSERT INTO staff VALUES ('','bobby','jones','nurse','5559876056','B10','104');
INSERT INTO staff VALUES ('','tiffany','jones','janitor','2539981265','B02','108');

更新: SQL ではなく MySQL であるため、エラーが発生していたと思います。(本当に迅速な)回答をありがとうございました!

4

3 に答える 3

3

この部分は SQL Server ではなく MYSQL です ENGINE = MYISAM;

SQL Server でテーブルがどのように表示されるかを次に示します (フルテキスト インデックスはありません。フルテキスト インデックスを作成するには、最初にフルテキスト検索を有効にする必要があります)。

create table staff (
  staffID int not null identity,
  fname varchar(25),
  lname varchar(25),
  title varchar(50),
  phone varchar(10),
  building varchar(10),
  room varchar(10),
  PRIMARY KEY(staffID) 
)

ドロップ アンド クリエイト データベースは次のようになります。

USE [master]
GO

IF  EXISTS (SELECT name FROM sys.databases 
WHERE name = N'cptc')
DROP DATABASE cptc
GO

CREATE DATABASE [cptc] 

ドロップテーブルは次のようになります

IF  EXISTS (SELECT * FROM sys.objects 
WHERE object_id = OBJECT_ID(N'staff') AND type in (N'U'))
DROP TABLE staff
GO

最後に、挿入中にIDの列を省略する必要があります。例

INSERT INTO staff VALUES ('michael','herrera','doctor','2539703420','B14','122');

列を省略しないと、次のエラーが発生します。

メッセージ 8101、レベル 16、状態 1、行 1

テーブル 'staff' の ID 列の明示的な値は、列リストが使用され、IDENTITY_INSERT が ON の場合にのみ指定できます。

于 2012-05-18T14:30:50.500 に答える
0
  • auto_increment は identity(1,1) である必要があります
  • エンジン=MYISAM; あなたはそれで何を期待していますか?
  • FULLTEXT (fname、lname) が正しくありません。全文検索を実装しますか?
于 2012-05-18T14:32:20.577 に答える
0

質問が明確ではありませんでした。データベースではなくテーブルを作成していました。実際のエラーの詳細を提供していただけると助かります。

ところで、サーバーによって自動的に割り当てられる autoincrement 列に値を入力しないでください。これが問題の原因だったと思います。

于 2012-05-18T14:35:38.133 に答える