我在SQL Server中有一个表,其中包含3列Id
int identity
),email
(nvarchar(50)
),password
(nvarchar(50)
)。现在我想写一个查询,我可以插入email
和password
,那时,我想返回id
的标识元素。
例如,我插入abc@dal.ca
和密码,然后返回标识元素值。
我把它写成:
@email nvarchar(50), @password nvarchar(50), @id int
insert into addEmail(email, password)
values(@email,@password)
return @id
这是正确的??我应该怎么做 ?我应该如何检查这是否正常工作?如果我选择
dbo.sp_addEmailReturnId abc@dal.ca, demo
然后点击执行,显示
'。'附近的语法不正确。
我无法找到错误。我只是试图插入电子邮件ID和密码,以便可以插入,我将获得标识元素,每个新行自动递增1。
在asp.net的代码部分中,我将如何检索id。 ?
答案 0 :(得分:1)
尝试
insert into addEmail(email,password)
OUTPUT INSERTED.ID
values(@email,@password)
答案 1 :(得分:1)
尝试此查询;它会获取你的身份
insert into addEmail(email, password) values(@email,@password) Select @@IDENTITY;
答案 2 :(得分:0)
这样做
private int getEmail(string email, string password)
{
string cs = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
using (SqlConnection conn = new SqlConnection(cs))
{
conn.Open();
SqlCommand cmd = new SqlCommand("sp_addEmailReturnid", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@email", email);
cmd.Parameters.AddWithValue("@password",password);
int nUploadId = Convert.ToInt32(cmd1.ExecuteScalar()); } // Updated Part
注意强>
在存储过程结束时,即插入语句后添加
Select Scope_Identity()
修改强>
你的过程就像这样
ALTER proc [dbo].[sp_addEmailReturnid]
@email VARCHAR(500),
@password VARCHAR(500)
AS
BEGIN
// Your insert statement here
Select Scope_Identity()
End
答案 3 :(得分:0)
insert into addEmail(email,password) values(@email,@password)
SELECT SCOPE_IDENTITY()