【发布时间】: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://stackoverflow.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,请签出。 stackoverflow.com/questions/42648/…
标签: sql sql-server tsql database-design