簡體   English   中英

我可以在SQL Server和C#數據表的列名中使用特殊字符嗎

[英]Can I use special characters in column name in SQL Server and C# data table

我是否可以在SQL Server表列名和C#數據表中使用特殊字符%$+-#

我試圖在創建表的SQL Server中使用這些字符創建表,但是我想知道它的可能與否嗎?

如前所述,您可以這樣做,因為列名位於方括號之間,但這不是一個好習慣,請在列名中使用空格和特殊字符。

CREATE TABLE [TABLE1] (ID UNIQUEIDENTIFIER, [% Column1] INT, [$ Column2] INT, [+ Column3] 
INT, [- Column4] INT, [# Column5] INT);

INSERT INTO [TABLE1] (ID, [% Column1], [$ Column2], [+ Column3], [- Column4], [# Column5])
VALUES ('8C012194-5D8A-4A58-B225-F33F60875499',1, 2, 3, 4, 5)

如果使用的是Entity Framework,則可以將列映射到模型類,如下所示:

[Table("Table1")]
public class Test 
{
  public Guid Id { get; set; }

  [Column("% Column1")]
  public int Column1 { get; set; }

  [Column("$ Column2")]
  public int Column2 { get; set; }

  [Column("+ Column3")]
  public int Column3 { get; set; }

  [Column("- Column4")]
  public int Column4 { get; set; }

  [Column("# Column5")]
  public int Column5 { get; set; }

}

Azure sql在列名稱中支持這些特殊字符。

因為SQL Server數據類型的column_name是nvarchar(128)。 在此處輸入圖片說明

您可以從此文檔獲得此表單: COLUMNS(Transact-SQL)

對於C#,正如mukesh kudi所說,您應該使用[]括號。

例如,如果要選擇帶有特殊字符“#”的列,則代碼應如下所示:

var rows = dt.Select("","[#]");

您可以參考以下博客: 如何使用DataTable.Select()訪問具有特殊字符的列?

希望這可以幫助。

歡迎使用SO,您可以使用帶有特殊字符或空格的列名,但必須使用

方括號 []

為了訪問這些列。

例如。

Table
%ID
1
2
3


Select [%ID] from Table

有關MSSQL Server的列名和表名規則的更多信息,請查看msdn

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM