sql - 设置默认架构的问题

标签 sql sql-server-2008 tsql

在大学里,我运行以下命令来更改我的默认模式:

ALTER USER [campus\s00103417]
WITH DEFAULT_SCHEMA = MyCmdSet01;

我最近在win7下的笔记本电脑上安装了SQL Server。其他一切都很好。但是当我创建一个数据库,然后创建一个模式并尝试将其设置为默认值时,它会给我一个错误。以下是我在笔记本电脑上运行的代码。
ALTER USER [L01\Admin]
WITH DEFAULT_SCHEMA = dbo;

下面是我得到的错误
Cannot alter the user 'L01\Admin', because it does not exist or you do not have permission.

我不明白的是,显然我存在,我创建了数据库。我还教我,因为 DBO 将有权做任何我喜欢的事情。显然我不完全理解这些东西。谁能解释我如何使上面的命令起作用,以便我可以更改我的默认架构。

如果相关,我只有一个 Windows 登录名(无密码)。计算机一启动,它就会将我弹出到桌面上。然后我启动 SQL Server 2008 Management Studio,它要求我连接并输入 L01 作为服务器名称并选择 Windows 身份验证。

任何帮助将不胜感激。

编辑:我不知道这些是否会提供任何帮助。我运行了命令:
SELECT SUSER_NAME()  --Output L01\Admin
SELECT USER_NAME()   --Output dbo

最佳答案

您正在谈论您的登录名(我猜它是“L01\Admin”)。这与数据库用户不同。如果您的登录名是 sysadmin固定服务器角色,您将自动映射到 dbo内置数据库用户。因此,这就是您找不到 L01\Admin 的原因。用户,因为它实际上不存在。

那有意义吗?请记住:server login <> database user .

关于sql - 设置默认架构的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8795101/

相关文章:

mysql - Ruby on Rails 表名 : what's permitted?

database - SQL Server 2008-同时进行多个导入过程

sql - T-SQL 过程 - 将参数过滤为 Object/CLR/Xml/UDT

sql-server - SQL Server 2005 中的 Case 语句

php - 带有 mysql_fetch_array 的嵌套 While 循环给出空白结果

java - 用 Java 构建基于用户输入的动态 SQL 查询

mysql - 如何选择 >= 1 天前的行?

sql-server - 如何重构使用插入表和删除表的触发器,以将公共(public)代码移动到存储过程

mysql - vb.net 查询以显示数据表的特定行 [基本]

sql - 未解析的对象 [INFORMATION_SCHEMA] 引用。[表]