【发布时间】:2017-03-13 17:31:14
【问题描述】:
我在 SQL Server 数据库中创建了一个用户 (testQA),该用户是数据库所有者,但是当我尝试运行 user_name 命令时,我得到的是实际用户名而不是 dbo。我想运行第 3 方提供的一些升级脚本,其中有如下语句
if exists (select * from INFORMATION_SCHEMA.TABLES where TABLE_NAME = 'TAb1' and TABLE_SCHEMA = user_name() )
drop table TAb1
为了正确运行,user_name 必须是 dbo,但不知何故,当我运行 user_name 时,我创建的用户总是返回 testQA。我可以进行任何更改以返回dbo吗?
【问题讨论】:
-
您不应该使用 INFORMATION_SCHEMA.TABLES 来确定对象的架构。该数据并不总是最新的,并且存在向后兼容性。 msdn.microsoft.com/en-us/library/ms186224.aspx.
-
模式和用户是两个不同的东西。如果你想在数据库下创建一个与你的用户名相同的新模式。
标签: sql sql-server sql-server-2008 sql-server-2012