目的:dbo.mytable 更改为myschema.mytable.
问题:工作需要,我需要把现有的数据库环境复制到本机。在本机,我是通过sqlserver management studio来创建了与工作环境一样的登录名pro_login,数据库pro_db,用户名pro_user,架构名(schema)pro_sche。在数据库pro_db下测试创建表,
create table mytable (age int);
sp_mytable 的结果是它的默认schema是dbo而不是我想要的pro_sche. (即dbo.mytable , 我想要的是pro_sche.mytable )。
解决方式: 查看数据库pro_db的user属性,默认的schema确实是我自己的pro_sche.引用这个文章的解答(稍后补上链接)。问题应该处在登录名的权限上。创建登录名时,默认的server权限是pubilc 和 sysadmin。把sysadmin去掉后,问题解决。再次创建表做测试
create table mytable2 (age int);
sp_mytable2,默认schema是pro_sche了。