EXEC('
INSERT ' + @Airline +' (
Departure,
Destination,
FeederRoutingID,
OnlineRoutingID,
InterlineRoutingID,
FeederFareID,
OnlineFareID,
InterlineFareID,
ContractID,
DateFrom,
DateTo,
IsRoundTrip,
Airline)
SELECT t1.a as Departure,t2.a as Destination,'
'CASE WHEN ' + @FeederRoutingID + ' IS NULL THEN NULL ELSE ' '' + @FeederRoutingID + ''' END ,''' +
@OnlineRoutingID+ ''',' +
'CASE WHEN ' + @InterlineRoutingID + 'IS NULL THEN NULL ELSE ' '' + @InterlineRoutingID + ''' END ,''' +
'CASE WHEN ' + @FeederFareID + 'IS NULL THEN NULL ELSE ' '' + @FeederFareID + ''' END ,''' +
@OnlineFareID+ ''',' +
'CASE WHEN ' + @InterlineFareID + 'IS NULL THEN NULL ELSE ' '' + @InterlineFareID + ''' END ,''' +
@ContractID+ ''',''' +
@DateFrom+ ''',''' +
@DateTo+ ''',''' +
@IsRoundTrip+ ''',''' +
@Airline + ''' FROM
(
select airportcode As a from
(
select * from zone where zoneNo='''+ @FeederDep + ''')Z
INNER JOIN ZoneElement ZE ON Z.zoneID=ZE.zoneID
INNER JOIN MST_AirPort A ON A.AirPortID=ZE.AirPortID
) AS t1
CROSS JOIN
(
select airportcode As a from
(
select * from zone where zoneNo='''+ @Destination + ''')Z
INNER JOIN ZoneElement ZE ON Z.zoneID=ZE.zoneID
INNER JOIN MST_AirPort A ON A.AirPortID=ZE.AirPortID
) AS t2
')
INSERT ' + @Airline +' (
Departure,
Destination,
FeederRoutingID,
OnlineRoutingID,
InterlineRoutingID,
FeederFareID,
OnlineFareID,
InterlineFareID,
ContractID,
DateFrom,
DateTo,
IsRoundTrip,
Airline)
SELECT t1.a as Departure,t2.a as Destination,'
'CASE WHEN ' + @FeederRoutingID + ' IS NULL THEN NULL ELSE ' '' + @FeederRoutingID + ''' END ,''' +
@OnlineRoutingID+ ''',' +
'CASE WHEN ' + @InterlineRoutingID + 'IS NULL THEN NULL ELSE ' '' + @InterlineRoutingID + ''' END ,''' +
'CASE WHEN ' + @FeederFareID + 'IS NULL THEN NULL ELSE ' '' + @FeederFareID + ''' END ,''' +
@OnlineFareID+ ''',' +
'CASE WHEN ' + @InterlineFareID + 'IS NULL THEN NULL ELSE ' '' + @InterlineFareID + ''' END ,''' +
@ContractID+ ''',''' +
@DateFrom+ ''',''' +
@DateTo+ ''',''' +
@IsRoundTrip+ ''',''' +
@Airline + ''' FROM
(
select airportcode As a from
(
select * from zone where zoneNo='''+ @FeederDep + ''')Z
INNER JOIN ZoneElement ZE ON Z.zoneID=ZE.zoneID
INNER JOIN MST_AirPort A ON A.AirPortID=ZE.AirPortID
) AS t1
CROSS JOIN
(
select airportcode As a from
(
select * from zone where zoneNo='''+ @Destination + ''')Z
INNER JOIN ZoneElement ZE ON Z.zoneID=ZE.zoneID
INNER JOIN MST_AirPort A ON A.AirPortID=ZE.AirPortID
) AS t2
')
解决方案 »
- 帮助
- 根据一个字段的值不同插入一条记值不同到不同的字段
- 高分求 多表查询 与 整合 在线等 谢谢
- select * 与 select 1 有区别吗?单从取记录数的角度讲,用哪个更好些?
- 局域网内不能访问sql?
- 这种错误要怎么判断?
- 被群发软件搞的SQLservr进程占CPU100% 更改了发信息页的服务端文件名也没用
- 如何写sql语句?回答有分!!!!!
- nononono(null,null),dudo(dudo).............你们在哪里?你快来呀。。。。。。。。
- !!!急!!!SQLserver 2000为什么不能在XPprofession下安装服务器组件??
- 记录集操作的问题,急求高手!!
- 用create database创建数据库mydb,如何知道数据库mydb已经存在,完整的SQL语句如何写
INSERT ' + @Airline +' (
Departure,
Destination,
FeederRoutingID,
OnlineRoutingID,
InterlineRoutingID,
FeederFareID,
OnlineFareID,
InterlineFareID,
ContractID,
DateFrom,
DateTo,
IsRoundTrip,
Airline)
SELECT t1.a as Departure,t2.a as Destination,CASE WHEN ' + -----这里有问题
@FeederRoutingID + ' IS NULL THEN NULL ELSE ' '' + @FeederRoutingID + ''' END ,''' +
@OnlineRoutingID+ ''',' +
'CASE WHEN ' + @InterlineRoutingID + 'IS NULL THEN NULL ELSE ' '' + @InterlineRoutingID + ''' END ,''' +
'CASE WHEN ' + @FeederFareID + 'IS NULL THEN NULL ELSE ' '' + @FeederFareID + ''' END ,''' +
@OnlineFareID+ ''',' +
'CASE WHEN ' + @InterlineFareID + 'IS NULL THEN NULL ELSE ' '' + @InterlineFareID + ''' END ,''' +
@ContractID+ ''',''' +
@DateFrom+ ''',''' +
@DateTo+ ''',''' +
@IsRoundTrip+ ''',''' +
@Airline + ''' FROM
(
select airportcode As a from
(
select * from zone where zoneNo='''+ @FeederDep + ''')Z
INNER JOIN ZoneElement ZE ON Z.zoneID=ZE.zoneID
INNER JOIN MST_AirPort A ON A.AirPortID=ZE.AirPortID
) AS t1
CROSS JOIN
(
select airportcode As a from
(
select * from zone where zoneNo='''+ @Destination + ''')Z
INNER JOIN ZoneElement ZE ON Z.zoneID=ZE.zoneID
INNER JOIN MST_AirPort A ON A.AirPortID=ZE.AirPortID
) AS t2
')
libin_ftsafe(子陌红尘:TS for Banking Card)是少了个+,编译过,但执行出现如下的问题:
服务器: 消息 156,级别 15,状态 1,行 16
在关键字 'IS' 附近有语法错误。
服务器: 消息 105,级别 15,状态 1,行 28
字符串 ')Z
INNER JOIN ZoneElement ZE ON Z.zoneID=ZE.zoneID
INNER JOIN MST_AirPort A ON A.AirPortID=ZE.AirPortID
) AS t2
' 之前有未闭合的引号。
1,SELECT t1.a as Departure,t2.a as Destination,'''
这里要'''个我忽视了,
2,我用的数据类型不是很好UNIQUEIDENTIFIER
DECLARE @IDZERO UNIQUEIDENTIFIER
SET @IDZERO ='00000000-0000-0000-0000-000000000000'插入的时候一定要转一下,SET @IDZERO ='00000000-0000-0000-0000-000000000000',这样才能识别。@FeederRoutingID + ''',''' + BEGIN
EXEC (
'INSERT ' + @Airline + ' (
Departure,
Destination,
FeederRoutingID,
OnlineRoutingID,
InterlineRoutingID,
FeederFareID,
OnlineFareID,
InterlineFareID,
ContractID,
DateFrom,
DateTo,
IsRoundTrip,
Airline)
SELECT t1.a as Departure,t2.a as Destination,'''+
@FeederRoutingID + ''',''' +
@OnlineRoutingID+ ''',''' +
@InterlineRoutingID+ ''',''' +
@FeederFareID+ ''',''' +
@OnlineFareID+ ''',''' +
@InterlineFareID+ ''',''' +
@ContractID+ ''',''' +
@DateFrom+ ''',''' +
@DateTo+ ''',''' +
@IsRoundTrip+ ''',''' +
@Airline + ' ''
FROM
(
select airportcode As a from
(select * from zone where zoneNo=''' + @FeederDep + ''')Z
INNER JOIN ZoneElement ZE ON Z.zoneID=ZE.zoneID
INNER JOIN MST_AirPort A ON A.AirPortID=ZE.AirPortID
) AS t1
CROSS JOIN
( select airportcode As a from
(select * from zone where zoneNo=''' + @Destination + ''')Z
INNER JOIN ZoneElement ZE ON Z.zoneID=ZE.zoneID
INNER JOIN MST_AirPort A ON A.AirPortID=ZE.AirPortID
) AS t2
ORDER BY Departure,Destination')
END