下面的查询弹出此错误。在这种情况下,名称“ name”是非法的。此处仅允许使用常量,常量表达式或变量。列名是非法的。
为什么?
INSERT INTO UPGRADEd
(SCRIPT_CODE,
APP_NAME,
FILE_NAME,
DATE_APPLIED,
ACT_TYPE,
STATUS,
CREDENTIALS)
VALUES
( 'scriptcode',
'-appname-',
'-filename-',
getdate(),
'PC',
(select
case when count(1) = 1 then 'FAIL' else 'OK' end from sysobjects
where name = ''),
(select hostname from sysprocesses where spid = @@spid)
)
您不能insert .. values
与混合使用insert..select
。您应该将所有内容放入如下的select语句中
INSERT INTO UPGRADEd
( SCRIPT_CODE, APP_NAME, FILE_NAME, DATE_APPLIED,
ACT_TYPE, STATUS, CREDENTIALS)
select 'scriptcode','-appname-','-filename-',getdate(),
'PC',
case
when count(1) = 1
then 'FAIL'
else 'OK' end,
(select hostname from sysprocesses where spid = @@spid)
from sysobjects
where name = ''
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句