【问题标题】:SQL Server 2012 - Script table As - Create toSQL Server 2012 - 脚本表为 - 创建到
【发布时间】:2017-06-15 02:31:18
【问题描述】:

好的,在 SQL Server 2005 中,当您使用

脚本表作为 - 创建到 - 文件(剪贴板)

您将获得该表的脚本中的所有信息。

' 2005 Script table as...
CREATE TABLE [dbo].[User](
[id] [int] IDENTITY(1,1) NOT NULL,
[ModID] [int] NULL,
[Moderator] [int] NULL CONSTRAINT [DF_User_Moderator]  DEFAULT ((0)),
[ModName] [varchar](25) COLLATE SQL_Latin1_General_CP1_CI_AS NULL CONSTRAINT [DF_User_ModName]  DEFAULT ('None')
CONSTRAINT [PK_AskUser] PRIMARY KEY CLUSTERED

上面的代码很完美,但是可以满足我的需要。当您在 SQL Server 2012 中执行相同的操作时,情况并非如此。

'2012 Script table as...
CREATE TABLE [dbo].[User](
[id] [int] IDENTITY(1,1) NOT NULL,
[ModID] [int] NULL,
[Moderator] [int] NOT NULL,
[ModName] [int] NOT NULL
CONSTRAINT [PK_AskUser] PRIMARY KEY CLUSTERED 

ALTER TABLE [dbo].[AskUser] ADD  CONSTRAINT [DF_User_Moderator]  DEFAULT ((0)) FOR [Moderator]
ALTER TABLE [dbo].[AskUser] ADD  CONSTRAINT [DF_User_ModName]  DEFAULT ('None') FOR [ModName]

如何,我们可以像 2005 年那样编写表格吗?我简直不敢相信微软会从他们的管理系统中删除这个功能。

欢迎对此提出任何想法。请。我有 20 个包含 100 多列的表,需要像 2005 年那样编写脚本,我不想编辑所有这些行,那将是一场噩梦。

是的,我可以将数据库导入到 2005 中,然后以这种方式做我需要的事情。然而,这违背了 Management Studio 的目的,以及我们应该能够在其中做什么。

韦恩

【问题讨论】:

  • 你确定你复制了第二组代码正确吗(我觉得它缺少一些括号)。否则,我看不出第二组有什么问题。
  • 唯一的区别是ModName上的COLLATE位?您确定您使用的 2012 服务器尚未设置为不区分大小写吗?如果是,他们似乎正在输出等效的 ddl。
  • 您需要这种方式的原因是什么?结果是等价的。
  • 我是说,我认为新方法没有任何缺陷,我猜为什么它是一个问题,奇怪的用例是没有意义的。
  • 你是绝对正确的@HartCO。我只是在我的 ASP 页面中运行了一个脚本,它运行良好。如果您将此信息发布到新的答案中,我将奖励您。 (只是对其他人而言,我以前从未使用过这种类型的脚本。)

标签: sql sql-server sql-server-2005 sql-server-2012


【解决方案1】:

转到工具->选项->“sql server object explorer”->“脚本”并在“表和视图选项”下将选项设置为true

【讨论】:

  • 我将所有这些都设置为 TRUE,但仍然像第二个示例一样生成。
  • “脚本”->“对象脚本选项”->“为依赖对象生成模式”的值是什么?
  • 它是FALSE,我把它设置为TRUE,去测试,还是一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-22
  • 2014-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多