【发布时间】:2020-09-14 07:04:32
【问题描述】:
不管从前端传递了什么值,我都想默认一个列值。我使用存储过程来管理插入和更新。
我曾尝试使用替换,但失败了。
alter procedure project
(
@PROJECTNAME NVARCHAR(150),
@ProjectSid INT,
)
INSERT into sa.project (Projectname, sid)
values (
@PROJECTNAME = Replace(@PROJECTNAME,@PROJECTNAME,'Default'),
@ProjectSid = Replace(@ProjectSid,@ProjectSid,100)
)
尝试执行时出现此错误
“=”附近的语法不正确。
我做错了什么?我在 SQL Server 中执行上述操作。我不想将架构更改为具有默认值,因为这种情况特定于一个模块。
【问题讨论】:
-
简单,只需
INSERT into sa.project (Projectname, sid) values ('Default',100) -
抱歉不清楚,我只想更改来自用户的值。如果用户没有输入值,我想将其留空。
-
请展示不同用例的示例,以及您想要的结果。
-
谢谢戴尔。我创建了一个模式标志来区分来自不同模块的请求,然后我将默认值分配给我想要更改的模块。那行得通。感谢您调查此问题。
-
在这种情况下,添加您的答案并自我接受 - 将来可能对其他人有用。
标签: sql-server string stored-procedures str-replace