我正在为现有数据库创建数据库脚本.我正在尝试使用SQL Server为我生成脚本,但生成的脚本失败了.我正在使用'Script Table As'>'CREATE To'>'New Query Editor Window'选项.然后我更改表和约束名称并执行脚本.我很难过.谁能在这里看到这个问题?
我收到此错误:
Msg 170, Level 15, State 1, Line 17
Line 17: Incorrect syntax near '('.
Run Code Online (Sandbox Code Playgroud)
生成的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
Run Code Online (Sandbox Code Playgroud)
小智 10
我有同样的错误.SQL Sever Management Studio默认为SQL Server 2005生成脚本,这些脚本与2000不兼容.
我的解决方案:在SQL Sever Management Studio中,转到工具>>选项>>脚本.在"常规脚本选项"下,将"服务器版本的脚本"设置为"SQL Server 2000".
如果您的目标数据库是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]
Run Code Online (Sandbox Code Playgroud)
SQL 2000仅支持
WITH FILLFACTOR = 90
Run Code Online (Sandbox Code Playgroud)
因此,可能有一些兼容性设置可用于仅生成SQL 2000语法
| 归档时间: |
|
| 查看次数: |
8288 次 |
| 最近记录: |