sql - 我可以使用 OUTPUT INTO 将数据添加到具有附加值的关系表吗?
问题描述
我有两张桌子。一个保存文章的通用数据,另一个保存文本的翻译。像这样的东西:
文章表
id | key | date
翻译表
id | article_key | lang | title | content
key
是一个字符串并且是主键。
article_key
是将它与列中的文章相关联的外键key
。
当我向文章添加新行时,我希望能够使用key
刚刚插入的行并将新行添加到翻译表中。
我已经阅读过,OUTPUT INTO
但似乎我无法将其他值添加到 Translations 表中。我也得到一个错误,关于它在关系的任何一方。
我唯一的做法是INSERT
进入文章,然后是INSERT
带有子查询的SELECT
子查询来获取key
?
编辑:预期的输出将是这样的:
文章
id | key | date
---------------
1 | somekey | 2018-05-31
文章翻译
id | article_key | lang | title | content
-----------------------------------------
1 | somekey | en | lorem | ipsum
解决方案
好吧,这可以根据您的描述起作用:
SET NOCOUNT ON;
DECLARE @Articles TABLE (id INT NOT NULL
, [key] VARCHAR(50) NOT NULL
, [date] DATE NOT NULL);
DECLARE @ArticleTranslations TABLE (id INT NOT NULL
, article_key VARCHAR(50) NOT NULL
, lang VARCHAR(50) NOT NULL
, title VARCHAR(50) NOT NULL
, content VARCHAR(50) NOT NULL);
INSERT @Articles (id, [key], [date]) -- This is insert into @Articles
OUTPUT INSERTED.id, INSERTED.[key], 'en', 'lorem', 'ipsum' -- This is insert into @ArticleTranslations
INTO @ArticleTranslations (id, article_key, lang, title, content) -- This is insert into @ArticleTranslations
VALUES (1, 'somekey', GETDATE()); -- This is insert into @Articles
SELECT *
FROM @Articles;
SELECT *
FROM @ArticleTranslations;
试试这个 Stack Exchange:https ://data.stackexchange.com/stackoverflow/query/857925
也许事情没有那么简单。所以让我知道这是否有效。
推荐阅读
- openmp - 编译此 OpenACC 代码时出错?任何人都可以弄清楚吗?
- html - python webserver html不显示图像
- python - Pandas:线性回归将标准缩放器应用于某些列
- php - php函数在按钮禁用后运行
- java - 尝试连接到 SSMS 数据库 (localhost) 时出现 SQL Server 异常
- c++ - 如何返回指向线性列表中项目的指针
- docker - 我正在尝试在 github 操作上设置 cron,出现授权错误
- list - 手动最大的haskell列表
- docker - 如何与我的 docker 容器共享我的笔记本电脑网络?
- laravel - Laravel Nova + 多态标签:附加“未定义变形图”时