我对update语句有点困惑,但这就是我所拥有的:我有这两个雇员及其各自的字母数字代码。
select * from cm.bo.hotlist('08Z') where State = 'ca' select * from cm.bo.hotlist('06D') where State = 'ca'
该表具有与每个员工相关联的某些城市,最上面的select语句具有与“ 08Z”相关联的这些城市的列表…比方说。
New York Chicago
我想将这些城市转移到员工“ 06D”
我将如何更新?
对我来说,令人困惑的部分是表是一个表值函数。
任何帮助将不胜感激。谢谢你。
也许像这样:
update CITY cm.bo.hotlist('06D') where CITY in (New York, Chicago)
因此,您想要的是:
Update cm.bo.hotlist('08Z') set <EmployeeID Column> = '06D' where city in ('New York', 'Chicago')
对于来到这里的每个人,是的,只要基础数据集是可更新的,则内联表值函数是可更新的。代码示例:
IF EXISTS(select * from sys.objects where name = 'test' and schema_id = schema_id('dbo')) BEGIN DROP TABLE dbo.test; END CREATE TABLE dbo.test(Employee varchar(10), city varchar(10)); CREATE FUNCTION [dbo].[getEmployeeCities] ( @employee varchar(10) RETURNS TABLE AS RETURN ( SELECT * from test where employee = @employee ); insert into dbo.test select 'A', 'Chicago'; insert into dbo.test select 'B', 'New York'; select * from dbo.test; update dbo.getEmployeeCities('A') set Employee = 'B' where city = 'Chicago'; select * from dbo.test;