Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用insert into时,存储过程中的对象名称无效_Sql_Tsql_Stored Procedures - Fatal编程技术网

Sql 使用insert into时,存储过程中的对象名称无效

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

编辑:

我有两个表,表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.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