为啥C#中数据库sql语句中在表的前面加上.dbo,不加也能正常执行,两者有啥区别!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥C#中数据库sql语句中在表的前面加上.dbo,不加也能正常执行,两者有啥区别!相关的知识,希望对你有一定的参考价值。

INSERT INTO [databasename].[dbo].[tablename]
你sql语句通过sql生成出来时会带上数据库名,不加也能正常执行。这样
INSERT INTO tablename
加了数据名就写死了,相当于这条语句只能往数据库名为databasename的插入数据,我们一般都是省略掉直接写INSERT INTO tablename
没特殊必要不要写成INSERT INTO [databasename].[dbo].[tablename]
参考技术A dbo是指数据库所有者database owner,是具有在数据库中执行所有活动的暗示性权限的用户。
所以,你在数据库中的所有操作,涉及到表名,如果没有加所有者,那么默认所有者就是dbo。
因为,其他所有者的表,必须加所有者,而dbo,可以省略所有者。

SQL Sever表添加主键失败

RT,失败提示
“普通用户信息表”表
- 无法创建索引“PK_普通用户信息表”。
因为发现对象名称 'dbo.普通用户信息表' 和索引名称 'PK_普通用户信息表' 有重复的键,所以 CREATE UNIQUE INDEX 语句终止。重复的键值为 (3)。
无法创建约束。请参阅前面的错误消息。
语句已终止。

普通用户信息表 里你要创建的主键存在重复值,你需要先把表里的重复值处理掉才能加上主键。

当然,还有种可能,就是你加的主键不正确
参考技术A 索引可能已经创建了 参考技术B 重复啦...这么明显的..哥哥...
你这个是创建索引吧..不是主键吧..哥...

以上是关于为啥C#中数据库sql语句中在表的前面加上.dbo,不加也能正常执行,两者有啥区别!的主要内容,如果未能解决你的问题,请参考以下文章

oracle 中在添加分区中如果要在表的开始或中间的位置添加分区,怎么使用split语句,帮忙举个例子谢谢

在SQL SERVER 中对表不能设置主键

在C#中使用SQL语句查询数据在表中是不是存在输出是或否

SQL Sever表添加主键失败

为啥 Oracle 12c 查询需要在表周围加上双引号 [重复]

列名无效是啥意思?