【问题标题】:SQL overwrite column value in stored procedure during insert插入期间 SQL 覆盖存储过程中的列值
【发布时间】: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


【解决方案1】:

我已通过创建模式标志来区分来自不同模块的请求来解决此问题,然后我将默认值分配给我想要更改的模块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多