我是否可以在SQL Server表列名称和C#数据中使用特殊字符%
,$
,+
,-
,#
桌子?
我试图在SQL Server中使用这些字符创建表,但表已创建,但我想知道它的可能与否?
答案 0 :(得分:5)
正如您所解释的那样,您可以这样做,因为您的列名位于方括号之间,但这不是一个好习惯,在列名中使用空格和特殊字符。
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; }
}
答案 1 :(得分:2)
Azure sql在列名中支持这些特殊字符。
因为SQL Server数据类型的column_name是nvarchar(128)。
您可以从以下文档获取此文档:COLUMNS (Transact-SQL)
对于C#,如mukesh kudi所说,您应该使用[]
括号。
例如,如果要选择带有特殊字符“#”的列,则代码应如下所示:
var rows = dt.Select("","[#]");
您可以引用此博客:How to access an column with special characters using DataTable.Select()?
希望这会有所帮助。
答案 2 :(得分:0)
欢迎使用SO,您可以使用带有特殊字符或空格的列名,但必须使用
方括号[]
以访问这些列。
例如
Table
%ID
1
2
3
Select [%ID] from Table
有关MSSQL Server的列名和表名规则的详细信息,您可以签出msdn