Sql server 在SQL Server数据库中创建用户

Sql server 在SQL Server数据库中创建用户,sql-server,sql-server-2008,sql-server-2008-r2,Sql Server,Sql Server 2008,Sql Server 2008 R2,我想在数据库中创建一个用户。我使用这个存储过程来创建它: CREATE PROCEDURE uspCreateUser @Name varchar(50) AS BEGIN CREATE USER [@Name] WITHOUT LOGIN WITH DEFAULT_SCHEMA=[dbo] END 但是当我用 EXEC uspCreateUser 'anny' 这将在数据库中创建具有@Name的用户 你能告诉我怎么解决这个问题吗 这个截图可以帮助你理解这个问

我想在数据库中创建一个用户。我使用这个存储过程来创建它:

CREATE PROCEDURE uspCreateUser
    @Name varchar(50)
AS
BEGIN 
   CREATE USER [@Name] 
   WITHOUT LOGIN WITH DEFAULT_SCHEMA=[dbo]    
END
但是当我用

EXEC uspCreateUser 'anny'
这将在数据库中创建具有
@Name
的用户

你能告诉我怎么解决这个问题吗

这个截图可以帮助你理解这个问题


您可以使用动态SQL。通常,只要T-SQL语法不接受变量,动态SQL就可以提供解决方案

CREATE PROCEDURE uspCreateUser
    @Name varchar(50)
AS
BEGIN 
    DECLARE @sqlstr nvarchar(max) = 'CREATE USER '+ @Name 
        +' WITHOUT LOGIN WITH DEFAULT_SCHEMA=[dbo]'
    EXECUTE sp_executesql @sqlstr
END
GO

EXEC uspCreateUser 'anny';
有关更多信息,请访问: