用于检查现有登录名和用户的SQL Server查询(如果存在),然后退出其他创建



我写了一个查询来检查SQL Server数据库中现有的登录名用户-如果用户存在,则退出,否则创建具有相同id的用户。

下面的查询正如预期的那样正常工作:

DECLARE @selectQuery AS varchar(50);
SET @selectQuery = 'select name from sys.sql_logins where name="AXA8080"';
IF @selectQuery IS NOT NULL
DROP USER AXA8080;
IF @selectQuery IS NOT NULL
DROP LOGIN AXA8080;
CREATE LOGIN AXA8080 WITH PASSWORD = 'mypass#1';
USE [DB_NAME];
CREATE USER [AXA8080] FOR LOGIN [AXA8080] WITH DEFAULT_SCHEMA = [dbo];
ALTER ROLE [db_reader] ADD MEMBER [AXA8080];

AXA8080是用户。

有人能告诉我为什么会出现这个错误吗:

用户确实存在(由于我还没有创建用户,需要通过此查询完成(

任何帮助都会很棒!

谢谢,Atul

就在这里!

注意:如果用户拥有数据库、架构、程序集,则会出现错误。

IF USER_ID('AXA8080') IS NOT NULL
DROP USER AXA8080;
IF SUSER_ID('AXA8080') IS NOT NULL
DROP LOGIN AXA8080;
CREATE LOGIN AXA8080 WITH PASSWORD = 'mypass#1';
USE [DB_NAME];
CREATE USER [AXA8080] FOR LOGIN [AXA8080] WITH DEFAULT_SCHEMA = [dbo];
ALTER ROLE [db_reader] ADD MEMBER [AXA8080];

相关内容

最新更新