美好的一天!
尽管LINQ2SQL和ADO.NET实体框架存在,但有些情况需要恢复到普通的旧DataSet(非打字)和朋友。
为SqlCommand编写SQL时:
我习惯使用这种语法:
SqlCommand command = new SqlCommand("SELECT [Field1], [Field2] FROM [dbo].[TableName]", connection);
可能有更好的方法吗?
提前致谢!
答案 0 :(得分:2)
是否需要引用字段和表格 姓名带[]?
不,除非您有一个名为[foo bar]的表(带空格),或者您的列/表(和数据库名称偶数)以数字开头,或者包含非字母数字字符。
为表名添加前缀是否合适? [DBO]
绝对是的。它允许计划重复使用,因为对象引用现在是合格的
答案 1 :(得分:1)
当您从数据库查询数据时,无需使用[]。
当存在别名的空间时使用[],如
SELECT Field1 as [First Name], Field2 as [Last Name] FROM [dbo].[TableName]
因为它给出了语法错误
dbo是表和用户附加的模式名称
这里有更详细的答案 数据库模式是一种逻辑分组对象(如表,视图,存储过程等)的方法。将模式视为对象的容器。
您可以为单个架构分配用户登录权限,以便用户只能访问他们有权访问的对象。
可以在数据库中创建和更改模式,并且可以授予用户对模式的访问权限。架构可以由任何用户拥有,架构所有权可以转让。
您还可以阅读完整文章:http://www.quackit.com/sql_server/sql_server_2008/tutorial/sql_server_database_schemas.cfm
答案 2 :(得分:0)
如果字段代表保留关键字或包含非法字符(例如“字段#1”),则只需引用字段。 “”(空格)和“#”字符通常都是非法的,因此您必须使用方括号引号。
至于架构名称,我建议不要编写它,好像有一天你要访问的表的架构名称不是dbo,你的代码可能会中断。