【发布时间】:2017-11-10 19:24:18
【问题描述】:
我正在尝试创建一个存储过程,该过程将删除一个表,然后创建一个具有相同名称的新表。
但是,当我右键单击表格并执行Script Table as ... DROP and CREATE To ... New Query Editor Window 然后将脚本复制到空白存储过程中时,它不会让我创建该过程,因为
数据库中已经有一个名为“MyTable”的对象
我该怎么办?
注意:新表与旧表的结构不同。我使用其他存储过程对表进行了一些转换,所以最后我想删除它并从头开始创建。
这是实际的脚本:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[spDropAndCreate]
AS
BEGIN
SET NOCOUNT ON;
IF OBJECT_ID ('dbo.MyTable','U') IS NOT NULL
DROP TABLE [dbo].[MyTable]
CREATE TABLE [dbo].[MyTable]
(
[ID] [int] IDENTITY(1,1) NOT NULL,
[Col1] [nvarchar](50) NULL,
[Col2] [nvarchar](50) NULL,
[Col3] [nvarchar](50) NULL,
[Col4] [nvarchar](50) NULL,
[Col5] [nvarchar](50) NULL,
[Col6] [nvarchar](50) NULL,
[Col7] [nvarchar](50) NULL,
[Col8] [nvarchar](50) NULL,
[Col9] [nvarchar](50) NULL,
[Col10] [nvarchar](50) NULL
)
GO
END
这是错误信息:
消息 102,级别 15,状态 1,过程 spDropAndCreate,第 17 行 [批处理开始第 9 行]
'MyTable' 附近的语法不正确消息 2714,第 16 级,状态 6,第 35 行
数据库中已经有一个名为“MyTable”的对象消息 102,第 15 级,状态 1,第 156 行
'END' 附近的语法不正确
【问题讨论】:
-
1) 发布脚本 2) 发布实际错误
标签: tsql sql-server-2016