【发布时间】:2016-02-25 06:40:39
【问题描述】:
我正在尝试使用以下链接中给出的脚本获取表的 ddl(create table) 脚本。
当我在这个脚本中传递了表名和模式名时,它会给出创建表脚本。
例如。如果现有的表名是表名,模式名是模式名,那么它将给出以下结果。
CREATE TABLE [schemaname ].[tablename ]
(
[id] [nchar](10) NOT NULL
, [name] [nchar](10) NOT NULL
, [department] [nchar](10) NOT NULL
)
当我执行该查询时,表已成功创建,但是 我的问题是,如果我的表中有文本数据类型,那么它将在 ddl 之后返回。
CREATE TABLE [UserOwner].[new_group_doc_history]
(
[id] [int] NOT NULL
, [older_values] [text](16) NULL
, [new_values] [text](16) NULL
, [modified_date] [datetime] NULL
, [modified_by] [varchar](1) NULL
, CONSTRAINT [PK_new_group_doc_history] PRIMARY KEY CLUSTERED ([id] ASC)
)
当我为创建表执行此查询时,它会给出以下异常。
Msg 2716, Level 16, State 1, Line 1
Column, parameter, or variable #2: Cannot specify a column width on data type text.
我该如何解决这个问题。请建议我或 sql server 中我们无法指定列宽的任何其他数据类型。
【问题讨论】:
-
删除
[text]之后的16 -
不问创建表的正确语法是什么,问题是如何为创建没有长度的文本数据类型的表生成DDL。
-
@TejKiran 请仔细阅读...
-
我正在使用链接中提到的脚本来获取表格的 ddl,因此请建议我是否在脚本中进行任何修改,这将给出没有任何文本数据类型宽度的表格的 ddl。
标签: java sql-server database-schema