0

我的数据库中有一个名为 tbRep 的表

我在 SQL Server 数据库 X、Y、Z 上有 3 个模式

现在 X & Y 有名为 X.tbRep & Y.tbRep 的表

但是,当我尝试使用来自例如 X.tbRep 的 CREATE To 脚本并尝试为新架构 Z 创建一个时,它会抛出一个错误,

消息 2714,级别 16,状态 6,第 2 行 数据库中已经有一个名为“tbRep”的对象。

我在这里做错了什么?

我确定有 Z.tbRep 不存在

创建到脚本

USE [Info]
GO


SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [Z].[tbRep](
[ReplicaGroup] [varchar](50) NOT NULL,
[RunFrequencyUnit] [char](1) NOT NULL,
[Enabled] [bit] NOT NULL,
[LastRun] [datetime] NOT NULL,
[RunFrequency] [int] NOT NULL,
[ReplicationWindowType] [char](1) NOT NULL,
[ReplicationWindowSize] [tinyint] NOT NULL,
 CONSTRAINT [PK_tbReplicaGroups] PRIMARY KEY CLUSTERED 
(
[ReplicaGroup] 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

SET ANSI_PADDING OFF
GO

ALTER TABLE [Z].[tbReplicaGroups] ADD  CONSTRAINT    [DF_tbReplicaGroups_ReplicationWindowType]  DEFAULT ('D') FOR [ReplicationWindowType]
GO

ALTER TABLE [Z].[tbReplicaGroups] ADD  CONSTRAINT  [DF_tbReplicaGroups_ReplicationWindowSize]  DEFAULT ((1)) FOR [ReplicationWindowSize]
GO
4

2 回答 2

0

--检查表是否不存在,如果不存在,则添加创建脚本
(从 sys.tables 中选择名称,其中 name = 'tpRep')
BEGIN
--表创建代码在此处
END

于 2013-02-13T07:40:22.037 回答
0

您可以在 CREATE TABLE 语句之前执行此操作并让我们知道您是否得到任何东西?

select * 
from sys.all_objects 
where sys.all_objects.name = 'tbRep' and 
sys.all_objects.type = 'U' and
sys.all_objects.schema_id = (select schema_id from sys.schemas where sys.schemas.name = 'Z')
于 2013-02-13T14:45:42.717 回答