sql – nvarchar不是一个公认的游标选项
发布时间:2020-12-12 08:31:19 所属栏目:MsSql教程 来源:网络整理
导读:我正在运行一些从临时表中获取信息的sql,并将其放入永久表中.我从3年前的一步一步的指导中得到它,写的人已经很久了. 它声明在这里使用这个sql. declare @Password nvarchar(100); set @Password ='rewards';if not exists(select 1 from sys.openkeys where k
我正在运行一些从临时表中获取信息的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),[OpenLink ],LastUpdateBy,UserEmail FROM TempUsers) 之后,它说下面 如果密码对于每一行都是唯一的,请采用set @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]),UserEmail FROM TempUsers) 那是什么给了我错误: nvarchar is not a recognized cursor option 有人知道我失踪了吗?如果我可以提供任何其他信息,我会尽力做到这一点. 谢谢任何能够帮忙的人. 解决方法你必须在名字之前用@符号声明变量.所以这是正确的:declare @Password nvarchar(100); set @Password ='rewards'; 这是不正确的: declare [Password] nvarchar(100); set [Password] ='rewards'; 我认为问题是你的变量声明.参见这篇文章:http://www.databasejournal.com/features/mssql/article.php/3087431/T-SQL-Programming-Part-1—Defining-Variables-and-IFELSE-logic.htm (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |