SQL Server 2005生成的创建表脚本不起作用

时间:2009-01-06 20:50:02

标签: sql-server

我正在为现有数据库创建数据库脚本。我正在尝试使用SQL Server为我生成脚本,但生成的脚本失败了。我正在使用'Script Table As'>'CREATE To'>'New Query Editor Window'选项。然后我更改表和约束名称并执行脚本。我很难过。谁能在这里看到这个问题?

我收到此错误:

Msg 170, Level 15, State 1, Line 17
Line 17: Incorrect syntax near '('.

生成的SQL:

USE [MyDatabase]
GO
/****** Object:  Table [dbo].[MyTable2]    Script Date: 01/06/2009 14:40:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[MyTable2](
    [id] [int] IDENTITY(1,1) NOT NULL,
    [u_id] [int] NOT NULL,
    [prog_number] [varchar](5) NOT NULL,
    [trans_id] [varchar](50) NULL,
    [code] [varchar](7) NULL,
    [user_num] [char](9) NULL,
    [is_found] [char](9) NULL,
    [status] [char](1) NULL,
    [status2] [char](1) NULL,
    [inserted_timestamp] [datetime] NULL CONSTRAINT [DF_MyTable2_inserted_timestamp]  DEFAULT (getdate()),
    [s_id] [varchar](10) NULL,
    [p_value] [char](4) NULL,
 CONSTRAINT [PK_MyTable2] PRIMARY KEY CLUSTERED 
(
    [id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF

7 个答案:

答案 0 :(得分:10)

我有同样的错误。 SQL Sever Management Studio默认为SQL Server 2005生成脚本,这些脚本与2000不兼容。

我的解决方案:在SQL Sever Management Studio中,转到工具>>选项>>脚本。在“常规脚本选项”下,将“服务器版本的脚本”设置为“SQL Server 2000”。

答案 1 :(得分:9)

如果您的目标数据库是SQL 2000,那么它会抱怨此行

WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON, FILLFACTOR = 90) ON [PRIMARY]

SQL 2000仅支持

WITH FILLFACTOR = 90

因此,您可以使用一些兼容性设置来生成SQL 2000语法

答案 2 :(得分:2)

当我使用SQL Server Management Studio 2005在SQL Server 2000数据库上生成Create Table脚本时,我得到了同样的问题。

答案 3 :(得分:2)

如果您在SQL Server 2000数据库上运行它,我相信它有SQL Server 2000不支持的代码。我从来没有见过SQL SErver 2000脚本将约束设置为表定义的一部分。

答案 4 :(得分:1)

我复制/粘贴了这个确切的SQL语句,并为我正确执行。我唯一能想到的是你有一些突出显示的东西,它只执行它的那部分(这可能不是一个完整的陈述)。

答案 5 :(得分:0)

除了use [MyDatabase]语句(我将其更改为tempdb)之外,当我使用Microsoft SQL Server Management Studio对SQL Server 2005运行时,此语句正确执行。

答案 6 :(得分:0)

使用Management Studio 2008,您可以创建一个与较低版本的SQL Server兼容的脚本,如下所示:

右键单击数据库>>任务>>生成脚本

在该向导中,您可以访问“服务器版本的脚本”选项。只需选择要在其上运行脚本的SQL Server版本。