T-SQL 中引号对列名的影响

DBO*_*BOn 1 sql-server

下面的两个 T-SQL 命令有区别吗?

  1. 带引号的列名

    SELECT SUM(DATALENGTH('ColumnName')) / 1048576.0 AS ColumnName 
    FROM DatabaseName.Schema.Tablename
    
    Run Code Online (Sandbox Code Playgroud)
  2. 不带引号的列名

    SELECT SUM(DATALENGTH(ColumnName)) / 1048576.0 AS ColumnName  
    FROM DatabaseName.schema.Tablename
    
    Run Code Online (Sandbox Code Playgroud)

Wor*_*DBA 6

是的,第一个变体将为您提供文本的数据长度,'ColumnName'而第二个变体很可能会让您更接近您正在寻找的结果(我假设这是给定列中所有数据的总长度)。

在 SQL Server 中,如果您要查找带引号的标识符,则可以使用标准"或方括号。您只需要引用像TABLE,INDEX等保留关键字的名称...但作为一般的代码风格提示,我建议选择一个引用方案并在您的代码中始终如一地使用它。它使其他开发人员更容易阅读和拿起您的脚本。

SQL Server:SET QUOTED_IDENTIFIER