【问题标题】:Sql Server Management Studio - Programmatically Creating Scripts based on DAL; Why use SET ANSI_NULLS ON before each tableSql Server Management Studio - 以编程方式创建基于 DAL 的脚本;为什么在每个表之前使用 SET ANSI_NULLS ON
【发布时间】:2010-12-11 17:56:55
【问题描述】:

我希望根据我的 DAL 中的类定义以编程方式生成用于创建表的 SQL 脚本,类似于 SQL Server Management Studio。

所以,当我在 MS SMS 中右键单击一个表,并告诉它脚本表为 > 创建到 > 新查询窗口时,它会生成一些非常易于理解的代码。但是,我不确定它们为什么会生成以下几行:

  • 设置 ANSI_NULLS 开启
  • 设置 QUOTED_IDENTIFIER 开启
  • 设置 ANSI_PADDING ON
    • {此处显示表格定义}
  • 设置 ANSI_PADDING 关闭

我在product documentation 中查看了这些语句,并了解它们的用途,但不确定为什么它们是围绕每个表声明生成的。

【问题讨论】:

    标签: sql sql-server tsql scripting ansi-sql


    【解决方案1】:

    这些设置与表格或代码定义一起存储。 如果您将这些 in 设置为存储过程,则它们在运行时将被忽略。

    因此,如果您为表格编写脚本,您也需要编写设置脚本。特别是如果您也有计算列等。

    【讨论】:

    • 谢谢,我特别想知道这些语句在创建表期间做了什么。我认为生成它们也是一个好主意,但想更多地了解我为什么需要它们。感谢您的意见。
    猜你喜欢
    • 1970-01-01
    • 2019-07-12
    • 2012-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多