【问题标题】:How can I ignore text datatype length using script in sql?如何使用 sql 中的脚本忽略文本数据类型长度?
【发布时间】:2016-02-25 06:40:39
【问题描述】:

我正在尝试使用以下链接中给出的脚本获取表的 ddl(create table) 脚本。

create script link

当我在这个脚本中传递了表名和模式名时,它会给出创建表脚本。

例如。如果现有的表名是表名,模式名是模式名,那么它将给出以下结果。

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


【解决方案1】:

尝试像这样创建您的查询:

    CREATE TABLE UserOwner.new_group_doc_history
    (
    id int NOT NULL,
    older_values text NULL,
    new_values text NULL,
    modified_date datetime NULL,
    modified_by varchar(1) NULL,
    CONSTRAINT PK_new_group_doc_history PRIMARY KEY (id)
    )

【讨论】:

    猜你喜欢
    • 2016-04-06
    • 1970-01-01
    • 2013-10-27
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 2019-08-10
    • 1970-01-01
    • 2010-09-12
    相关资源
    最近更新 更多