Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > Подскажите в чем проблемма


Автор: VisMaster 1.7.2008, 12:14
Здавствуйте

вот код: 
Код

Create procedure [dbo].[AddNewUser] 
(
@Flag                    bit,
@login                    nvarchar(100)=NULL,
@Password                nvarchar(100)=NULL,
@Dolshnost                nvarchar(100)=NULL,
@ReturnValue            int = 0 OUTPUT  
)

as
Set nocount off

BEGIN TRY
Begin TRAN -- Создание транзакции 

CREATE LOGIN @login WITH PASSWORD = @Password;
CREATE USER @login FOR LOGIN @login WITH DEFAULT_SCHEMA= dbo;


COMMIT -- Если нет ошибок, то подтверждаем транзакцию
Set @ReturnValue = 1;
END TRY

BEGIN CATCH
ROLLBACK -- Откат транзакции
Set @ReturnValue = 2;
END CATCH


А вот ошибки выпадающие:

На эту строку:
Код

CREATE LOGIN @login WITH PASSWORD = @Password;


Код

Сообщение 102, уровень 15, состояние 1, процедура AddNewUser, строка 19
Incorrect syntax near '@login'.
Сообщение 319, уровень 15, состояние 1, процедура AddNewUser, строка 19
Incorrect syntax near the keyword 'with'. If this statement is a common table expression or an xmlnamespaces clause, the previous statement must be terminated with a semicolon.


И на эту строку:
Код

CREATE USER @login FOR LOGIN @login WITH DEFAULT_SCHEMA= dbo;


Код

Сообщение 319, уровень 15, состояние 1, процедура AddNewUser, строка 20
Incorrect syntax near the keyword 'with'. If this statement is a common table expression or an xmlnamespaces clause, the previous statement must be terminated with a semicolon.


Может кто подскажет как их исправить, а то что то я в ступоре... smile 

Автор: Magnifico 1.7.2008, 12:28
http://forum.vingrad.ru/topic-199139/unread-1.html

Автор: VisMaster 1.7.2008, 14:55
Спасибо посмотрел ссылку с синтаксисом вроде как разобрался:

Код


set @str1 = 'EXECUTE sp_addsrvrolemember ['+ @login +'],sysadmin';


Подскажите пожалуйста, что не так с этой строкой, она почему то исполняется

Автор: LSD 1.7.2008, 15:40
Модератор: СУБД кто указывать будет?

Автор: VisMaster 1.7.2008, 15:50
извините!

СУБД MSSQL 2005

Автор: LSD 1.7.2008, 16:31

M
LSD
Перенесено их баз данных

Автор: VisMaster 1.7.2008, 21:04
Повторю вопрос для наглядности:
Код

set @str1 = 'EXECUTE sp_addsrvrolemember ['+ @login +'],sysadmin';


Подскажите пожалуйста, что не так с этой строкой, она почему то исполняется

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)