如何检索和存储这些指南以供以后使用?
Posted
技术标签:
【中文标题】如何检索和存储这些指南以供以后使用?【英文标题】:How do I retrieve and stores these guids for later use? 【发布时间】:2016-02-03 15:33:47 【问题描述】:我有一张由
生成的表Partners
CREATE TABLE Partners (
id UNIQUEIDENTIFIER NOT NULL DEFAULT NEWID(),
name NVARCHAR(50) NOT NULL,
email NVARCHAR(254) NOT NULL, -- 254 is optimal length according to http://***.com/questions/1199190/what-is-the-optimal-length-for-an-email-address-in-a-database
PRIMARY KEY (id)
);
并尝试在存储过程中插入一行并检索插入行的id
:
CREATE PROCEDURE AddPartner
@name NVARCHAR(50), @email NVARCHAR(254)
AS
BEGIN
SET NOCOUNT ON
INSERT INTO Partners (name,email)
OUTPUT INSERTED.id INTO @new_guid
VALUES (@name,@email)
SELECT @new_guid
END
假设我想 (1) 调用 AddPartner
和 (name,email)
等于 ('some dude','dude192@gmail.com
) 并返回 id
(调用它 dude_id
) 以便我以后可以 (2) 在插入另一个时使用它行:
INSERT INTO Answers (question_id,partner_id,val) VALUES (1,dude_id,24);
我该怎么做呢?在 (1) 和 (2) 之间使用 GO
语句会毁掉一切吗?
【问题讨论】:
如果您在导入时没有 ID,请签出。 ***.com/questions/42648/… 【参考方案1】:将Output Parameter
添加到您的程序中
CREATE PROCEDURE Addpartner (@name NVARCHAR(50),
@email NVARCHAR(254),
@new_guid UNIQUEIDENTIFIER output)
AS
BEGIN
SET NOCOUNT ON
INSERT INTO Partners
(name,email)
OUTPUT INSERTED.id INTO @new_guid
VALUES (@name,@email)
END
DECLARE @new_guid AS UNIQUEIDENTIFIER
EXEC Addpartner 'some dude', 'dude192@gmail.com', @new_guid output
INSERT INTO Answers
(question_id,partner_id,val)
VALUES (@output_identity,'dude_id',24);
【讨论】:
id
是 UNIQUEIDENTIFIER
,而不是 INT
@user5648283 - 立即查看
我在OUTPUT INSERTED.id INTO @new_guid
行收到错误Must declare the table variable "@new_guid".
以上是关于如何检索和存储这些指南以供以后使用?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Android Studio 中检索已保存的密钥库密码?
如何 $.post 一个 js 变量并将其存储到 php 以供以后使用,类似于 LocalStorage?