最近,一客户遇到一个奇怪的问题,sqlserver数据库,使用备份恢复到目标机器。之后,在目标服务器创建了测试函数对象,但是执行查询的时候却提示对象不存在,再次尝试重新创建该函数及其依赖的对象时能正常执行。经过仔细检查发现登陆操作的用户拥有的默认架构是db_owner,检查创建的数据库下的相关函数显示db_owner.func_name,当查询语句引用对象加上db_owner.func_name时可以执行正常执行查询。后来在创建函数及其依赖的对象时加上dbo.func_name,再次执行查询可以正常执行。
一、问题现象
在sqlserver数据库中创建了测试函数对象,但是执行查询的时候却提示对象不存在:
再次尝试重新创建该函数及其依赖的对象时,没有发现任提示报错:
二、问题分析 查看指定数据库下该函数的位置情况,发现其在db_owner下:
尝试执行select * from db_owner.Fn_GetQuestion……能正常执行查询:
后经过查看执行操作的用户的默认架构是db_owner。 三、问题处理 将函数及其依赖的对象删除,在对象名称前添加dbo.前缀后再次执行创建,程序测试查询恢复正常。 四、总结 sqlserver数据库与其他数据库不一样,其数据库对象默认存放在dbo方案下,程序执行解析时也是默认在dbo方案下查找,当类似本案例的函数或者表对象创建没有添加dbo.前缀时,创建的对象就可能放在其他方案下,导致程序执行解析出现异常。因此,使用sqlserver数据库时,创建表或者函数等对象,最好养成显示添加dbo.前缀。
SQLServer 对象创建注意事项之dbo
来源:这里教程网
时间:2026-03-02 12:30:15
作者:
编辑推荐:
- SQLServer 对象创建注意事项之dbo03-02
- 链接服务器的OLE DB访问接口报错。由于达到了资源限制,提供程序终止了执行。03-02
- 你知道分辨率与像素的关系吗?03-02
- 怎样快速回到电脑桌面?03-02
- 5款超级好用的办公软件03-02
- 如何使用屏幕键盘及快捷键03-02
- usb接口有几种(usb接口类型图解)03-02
- SQLServer设置用户的作业权限03-02
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- SQLServer 对象创建注意事项之dbo
SQLServer 对象创建注意事项之dbo
26-03-02 - 链接服务器的OLE DB访问接口报错。由于达到了资源限制,提供程序终止了执行。
- 你知道分辨率与像素的关系吗?
你知道分辨率与像素的关系吗?
26-03-02 - 怎样快速回到电脑桌面?
怎样快速回到电脑桌面?
26-03-02 - 5款超级好用的办公软件
5款超级好用的办公软件
26-03-02 - 如何使用屏幕键盘及快捷键
如何使用屏幕键盘及快捷键
26-03-02 - usb接口有几种(usb接口类型图解)
usb接口有几种(usb接口类型图解)
26-03-02 - SQLServer设置用户的作业权限
SQLServer设置用户的作业权限
26-03-02 - 数据类型隐式转换导致的阻塞
数据类型隐式转换导致的阻塞
26-03-02 - 你了解多少PBX电话系统中的几个概念
你了解多少PBX电话系统中的几个概念
26-03-02
