首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改the中登录的默认数据库

如何更改the中登录的默认数据库
EN

Database Administration用户
提问于 2019-03-29 11:02:00
回答 1查看 1.3K关注 0票数 -1

我试图将sql server实例中登录的默认数据库更改为映射到的数据库。当前,主数据库中所有登录的默认数据库。

代码语言:javascript
复制
Alter login login-name with default_database = --'NEED HELP HERE to put the logic'

谢谢

EN

回答 1

Database Administration用户

发布于 2019-03-29 11:58:05

此查询将帮助您将任何默认数据库设置为所有/指定的登录名,并将其映射到。

代码语言:javascript
复制
DROP TABLE IF EXISTS #temp
CREATE TABLE #temp
(
[Login] sysname,
DBName varchar(512)
)

insert into #temp
exec sp_msforeachdb 'USE ? select name [login],db_name() from sys.database_principals where type=''U'' and [name] not like ''##%'''
-- Here you can add "where [name]= ''Login_name'' " if you want to set default database for specific login
DECLARE @QUERY NVARCHAR(1024)
DECLARE My_Cursor CURSOR FOR
    select 'ALTER LOGIN '+[Login]+' WITH DEFAULT_DATABASE=['+DBName+']'
    from
    (
    select
            distinct row_number() over(partition by t.[Login] order by t.DBName) Id,[Login],t.DBName
    from    #temp t inner join syslogins s on t.[Login]=s.[name]
    ) a

where Id=1

OPEN My_Cursor
FETCH NEXT FROM My_Cursor INTO @QUERY
WHILE @@fetch_status=0
    BEGIN
    EXEC (@QUERY);
    FETCH NEXT FROM My_Cursor INTO @QUERY
    END
CLOSE My_Cursor
DEALLOCATE My_Cursor
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/233486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档