Sql 使用insert into时,存储过程中的对象名称无效
编辑: 我有两个表,表1和表2由GUID链接,我想在表2中搜索不在表1中的任何GUID并插入它们 我正试图在select from where语句中使用insert,如下所示:Sql 使用insert into时,存储过程中的对象名称无效,sql,tsql,stored-procedures,Sql,Tsql,Stored Procedures,编辑: 我有两个表,表1和表2由GUID链接,我想在表2中搜索不在表1中的任何GUID并插入它们 我正试图在select from where语句中使用insert,如下所示: insert into WebCatalog.Published.DemoTracking (RCompanyLink, Purchased, DemoDate) Select RC.Link, Purchased = 0, DemoDate = GETDATE() from WebCatalog.Published.R
insert into WebCatalog.Published.DemoTracking (RCompanyLink, Purchased, DemoDate)
Select RC.Link, Purchased = 0, DemoDate = GETDATE()
from WebCatalog.Published.RCompany RC
where RC.Link != WebCatalog.Published.DemoTracking.RCompanyLink and RC.DemoLicense = 1
当对象名在存储过程中且多部分标识符无法绑定到引用时,我不断收到一个无效的对象名错误
WebCatalog.Published.DemoTracking.RCompanyLink
当我试图自己执行它时出错
我的语句格式是否不正确?而不是
RC.Link != WebCatalog.Published.DemoTracking.RCompanyLink
使用
完整代码
INSERT INTO webcatalog.published.demotracking
(rcompanylink,
purchased,
demodate)
SELECT RC.link,
Purchased = 0,
DemoDate = Getdate()
FROM webcatalog.published.rcompany RC
WHERE RC.link NOT IN (SELECT rcompanylink
FROM webcatalog.published.demotracking)
AND RC.demolicense = 1
问题是,在SQL中,您必须告诉服务器数据是如何关联的;它并不是自动推断出来的。您所拥有的看起来可能在orm中工作,并使用Linq2Sql(一种.Net技术) 我建议使用NOT EXISTS,因为我相信它比中的性能更好
INSERT INTO webcatalog.published.demotracking
(rcompanylink,
purchased,
demodate)
SELECT RC.link,
Purchased = 0,
DemoDate = Getdate()
FROM webcatalog.published.rcompany RC
WHERE NOT EXISTS (SELECT *
FROM webcatalog.published.demotracking dt WHERE dt.rcompanylink = RC.link)
AND RC.demolicense = 1
INSERT INTO webcatalog.published.demotracking
(rcompanylink,
purchased,
demodate)
SELECT RC.link,
Purchased = 0,
DemoDate = Getdate()
FROM webcatalog.published.rcompany RC
WHERE NOT EXISTS (SELECT *
FROM webcatalog.published.demotracking dt WHERE dt.rcompanylink = RC.link)
AND RC.demolicense = 1