Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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 server ce SQL Server CE从另一个表更新表_Sql Server Ce - Fatal编程技术网

Sql server ce SQL Server CE从另一个表更新表

Sql server ce SQL Server CE从另一个表更新表,sql-server-ce,Sql Server Ce,在尝试调整通常是从一个表到另一个表的简单更新时遇到困难: UPDATE t2 SET Country_FK = t1.Country_ID FROM dbo.CountryCity t2 INNER JOIN dbo.Country t1 ON t2.country = t1.ISO 做了一些研究,SQLServerCE不喜欢联接中的FROM子句 我似乎无法正确使用SQL Server CE的语法 任何建议都是非常受欢迎的 谢谢 是的,根据SQL CE,UPDATE中不支持FROM子句。也

在尝试调整通常是从一个表到另一个表的简单更新时遇到困难:

UPDATE t2 
SET Country_FK = t1.Country_ID 
FROM dbo.CountryCity t2
INNER JOIN dbo.Country t1 ON t2.country = t1.ISO
做了一些研究,SQLServerCE不喜欢联接中的FROM子句

我似乎无法正确使用SQL Server CE的语法

任何建议都是非常受欢迎的


谢谢

是的,根据SQL CE,UPDATE中不支持FROM子句。也不能更新CountryCity SET Country\u FK=从国家/地区选择国家/地区ID。。。因为SET只接受一个标量,SELECT返回一个选择

必须从中指定第一个或唯一的值

SELECT Country_ID FROM Country c
INNER JOIN CountryCity cc ON cc.country = c.ISO
WHERE you need something here to specify one country instead of every country that has any matching ISO
发送至CountryCity.Country\u FK,其中Country=您在上面指定的同一国家


这必须在调用SQL命令的任何脚本或应用程序中完成,而不能在SQL CE中完成。

我同意。听起来我需要编写一些代码来填充CountryCity表中的datatable,遍历它,从CountryTable中找到匹配项,获取它的值,动态地为一条记录创建更新脚本并进行更新。谈论低效。只有当您希望第一次查询返回多个国家,并且希望将不同的国家分配给不同的CountryCity行时,您才需要一个数据集并循环任何内容。如果是这种情况,则必须使用循环或游标,这在任何版本的SQL中都是内部循环。