我从下面的T-SQL查询中收到此错误。
错误讯息:
Msg 102,Level 15,State 1,Line 13 ' 101'
附近的语法不正确
有人能发现这里的错误在哪里吗?使用Management Studio / SQLServerExpress所需的结果是插入的新记录或现有的更新。
以下是我的疑问:
IF EXISTS (SELECT * FROM Product WHERE ProductID = 101)
UPDATE Product SET
ProductID = 101 , InsurerID = 1, CategoryID =1, Name = 'Landlord',
[description] ='Allianz Landlord', label = 'NULL', AssumptionRef ='NULL',
QuoteProviderKey ='A75',AccidentalDamageCover =0, ProductBenefitGroupID = 11,
IsAvailableToBuy =1,IsAvalableToDisplay =0,PercentageContentsCover ='NULL',
ProductPolicyView ='NULL', ProductFee =NULL
WHERE ProductID = 101
ELSE
INSERT INTO Product
VALUES 101,1,1,'Landlord','Allianz Landlord','NULL','NULL','A75',0,11,1,0,'NULL','NULL',NULL
WHERE ProductID = 101
答案 0 :(得分:0)
替换最后一个where子句,因为根据您的场景,您不需要在INSERT语句中的位置 尝试运行这个
std::tr1::shared_ptr<ObjectData> ObjectLoader::getModel() {
return object;
}
ObjectLoader::ObjectLoader(std::string objName) {
indexChecked = false;
colorChecked = false;
std::string fileName = objName;
object = std::tr1::shared_ptr<ObjectData>(new ObjectData());
}
答案 1 :(得分:0)
您的INSERT
语句设有WHERE
条款,VALUES
设置为INSERT INTO Product
VALUES 101
,1
,1
,'Landlord'
,'Allianz Landlord'
,'NULL'
,'NULL'
,'A75'
,0
,11
,1
,0
,'NULL'
,'NULL'
,NULL
WHERE ProductID = 101
,但无效:
()
您在VALUES
部分以及列出的列中也遗漏了INSERT INTO Product
(
ProductID
,InsurerID
,CategoryID
,NAME
,[description]
,label
,AssumptionRef
,QuoteProviderKey
,AccidentalDamageCover
,ProductBenefitGroupID
,IsAvailableToBuy
,IsAvalableToDisplay
,PercentageContentsCover
,ProductPolicyView
,ProductFee
)
VALUES
(
101
,1
,1
,'Landlord'
,'Allianz Landlord'
,'NULL'
,'NULL'
,'A75'
,0
,11
,1
,0
,'NULL'
,'NULL'
,NULL
)
(但是,这不会给出错误,但您应该养成明确的习惯列出列)
您的陈述应如下所示:
'NULL'
另一个值得怀疑的问题是您为什么要使用字符串NULL
值。如果您打算将这些字段设为NULL
,则它们应为'NULL'
而不是Company + RIGHT(Number,LEN(Number) - 3)
答案 2 :(得分:-1)
你忘记了开始结束
docker build --build-arg URL=<my-url> .