我正在尝试在Microsoft SQL Server 2005(Express)上创建一个表。
当我运行此查询时
USE [QSWeb]
GO
/****** Object: Table [dbo].[QSW_RFQ_Log] Script Date: 03/26/2010 08:30:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[QSW_RFQ_Log](
[RFQ_ID] [int] NOT NULL,
[Action_Time] [datetime] NOT NULL,
[Quote_ID] [int] NULL,
[UserName] [nvarchar](256) NOT NULL,
[Action] [int] NOT NULL,
[Parameter] [int] NULL,
[Note] [varchar](255) NULL,
CONSTRAINT [QSW_RFQ_Log] PRIMARY KEY CLUSTERED
(
[RFQ_ID] ASC,
[Action_Time] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
我收到此错误消息
Msg 2714,Level 16,State 4,Line 2 已经有一个名为的对象 数据库中的'QSW_RFQ_Log'。消息 1750年,16级,0国,2号线 不创造约束。见前 错误。
但如果我尝试使用此查询找到有问题的对象:
SELECT *
FROM QSWEB.sys.all_objects
WHERE upper(name) like upper('QSW_RFQ_%')
我得到了这个
(0行(s)受影响)
发生了什么????
答案 0 :(得分:27)
您正在尝试创建一个与约束名称相同的表(QSW_RFQ_Log)。您的查询找不到对象,因为表创建失败,因此错误后对象不存在。为约束选择一个新名称,它将起作用,例如:
CONSTRAINT [QSW_RFQ_Log_PK] PRIMARY KEY CLUSTERED
答案 1 :(得分:6)
试试这个:
CONSTRAINT [PK_QSW_RFQ_Log] PRIMARY KEY CLUSTERED
add this ^^^
您正在尝试添加与表名相同的主键,使PK具有不同的名称。
答案 2 :(得分:4)
您不应将主键约束命名为数据表; - )