Prueba Esto
   
Código sql:
Ver original- CREATE PROCEDURE [dbo].[Sp_CrearLogin] 
- ( 
-     @USU  VARCHAR(100), 
-     @CLA  VARCHAR(100), 
-     @BD   VARCHAR(100) 
- ) 
- AS 
- BEGIN TRY 
-     DECLARE @SQLString NVARCHAR(MAX) 
-     SET @SQLString = N'CREATE LOGIN [' + UPPER(@USU) + '] WITH PASSWORD=N'''+ @CLA + ''' , DEFAULT_DATABASE=[' + @BD + '], DEFAULT_LANGUAGE=[Español], CHECK_EXPIRATION=OFF, CHECK_POLICY=ON'; 
-     EXECUTE SP_EXECUTESQL @SQLString 
-   
-     SET @SQLString = N'USE NOMBD;'; 
-     SET @SQLString =@SQLString  +  N'CREATE USER [' + UPPER(@USU) + '] FOR LOGIN ' + '[' + UPPER(@USU) + ']'; 
-     SET @SQLString =@SQLString  +  N' WITH DEFAULT_SCHEMA = NOMBD;' 
-     EXECUTE SP_EXECUTESQL @SQLString 
-   
-     --¡¡¡¡¡¡¡SE DEBE CAMBIAR DB_OWNER POR OTRO ROL CON MENOS PERMISOS SOBRE EL SERVIDOR!!!!! 
-     SET @SQLString = N'EXECUTE SP_ROLEMEMBER "db_owner", [' + UPPER(@USU) + ']' 
-     EXECUTE SP_EXECUTESQL @SQLString 
- END TRY 
- BEGIN CATCH 
-     PRINT 'NUMERO DE ERROR: ' + CONVERT(VARCHAR,ERROR_NUMBER()); 
-     PRINT 'MENSAJE DE ERROR: ' + ERROR_MESSAGE(); 
- END CATCH;