Я запускаю некоторый sql, который берет информацию из временной таблицы и помещает ее в постоянную таблицу. Я получил его из пошагового руководства, написанного 3 года назад, и тот, кто его написал, давно ушел. он заявляет, что использует этот sql здесь.
declare @Password nvarchar(100);
set @Password ='rewards';
if not exists(select 1 from sys.openkeys where key_name = 'Sym_UserPassData'
and database_name = db_name()) OPEN SYMMETRIC KEY Sym_UserPassData DECRYPTION BY
CERTIFICATE UserPassTables with password='asbpass71509new';
INSERT INTO [User] (Username, [Password], AllowChange, ForceChange, FullName,
SalesRep, OpenLink, UserProfileID, LastUpdatedBy,UserEmail)
(SELECT Username,EncryptByKey(Key_GUID('Sym_UserPassData'),@Password),
AllowChange, ForceChange, FullName, SalesRep, [OpenLink ], UserProfileID,
LastUpdateBy, UserEmail FROM TempUsers)
а затем после этого он говорит следующее
Если пароль уникален для каждой строки, возьмите набор @Password = 'Password; и замените @Password на [Пароль].
поэтому сначала я просто изменил вторую строку, так что сказал
declare @Password nvarchar(100);
set [Password]
...
Но это дало мне ошибку в столбце пароля, поэтому я изменил его на:
declare [Password] nvarchar(100);
set [Password]
if not exists(select 1 from sys.openkeys where key_name = 'Sym_UserPassData'
and database_name = db_name()) OPEN SYMMETRIC KEY Sym_UserPassData DECRYPTION BY
CERTIFICATE UserPassTables with password='asbpass71509new';
INSERT INTO [User] (Username, [Password], AllowChange, ForceChange, FullName,
SalesRep, OpenLink, UserProfileID, LastUpdatedBy,UserEmail)
(SELECT Username,EncryptByKey(Key_GUID('Sym_UserPassData'),[Password]),
AllowChange, ForceChange, FullName, SalesRep, [OpenLink ], UserProfileID,
LastUpdateBy, UserEmail FROM TempUsers)
и именно это дало мне ошибку:
nvarchar is not a recognized cursor option
Кто-нибудь знает, что мне не хватает? Если я могу предоставить любую другую информацию, я сделаю все возможное, чтобы сделать это.
Спасибо всем, кто может помочь с этим.