sql-server - SQL Server 存储过程,语法无效
问题描述
我不是一个真正的 SQL 人,但我必须更改一个存储过程,我必须在存储过程中添加一个 column_name, CrossbarRouter
。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [StateMachine].[UpdateSnapshots]
@SystemName[NVARCHAR](128),
@IntrestingEvents VARCHAR(128),
@StateMachine_JSON [NVARCHAR](MAX),
@StateMachine_Object [NVARCHAR](MAX),
@CrossbarRouter VARCHAR(128)
AS
IF EXISTS (SELECT * FROM [DVMT30_EVENT_PROCESSOR].[StateMachine].[Snapshots]
WHERE SystemName = @SystemName)
UPDATE [DVMT30_EVENT_PROCESSOR].[StateMachine].[Snapshots]
SET IntrestingEvents = @IntrestingEvents,
StateMachine_JSON = @StateMachine_JSON,
StateMachine_Object = @StateMachine_Object,
CrossbarRouter = @CrossbarRouter
WHERE SystemName = @SystemName;
ELSE
INSERT INTO [DVMT30_EVENT_PROCESSOR].[StateMachine].[Snapshots] (SystemName, IntrestingEvents, StateMachine_JSON, StateMachine_Object, CrossbarRouter)
VALUES (@SystemName, @IntrestingEvents, @StateMachine_JSON, @StateMachine_Object, @CrossbarRouter);
GO
错误
12:40:04 PMStarted executing query at Line 1
Commands completed successfully.
12:40:04 PMStarted executing query at Line 2
Commands completed successfully.
12:40:04 PMStarted executing query at Line 4
消息 207,级别 16,状态 1,过程 UpdateSnapshots,第 9 行
无效的列名称“CrossbarRouter”。
在此之前,我确实对表格进行了更改,就像这样。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [StateMachine].[Snapshots]
(
[ID] [INT] IDENTITY(1,1) NOT NULL,
[SystemName] [NVARCHAR](128) NOT NULL,
[IntrestingEvents] [VARCHAR](128) NOT NULL,
[StateMachine_JSON] [NVARCHAR](MAX) NOT NULL,
[StateMachine_Object] [NVARCHAR](MAX) NOT NULL,
[CrossbarRouter] [VARCHAR](1) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
解决方案
您没有使用 create table 语句更改表。您可以使用 alter table add column 语句或通过删除表然后创建表来将列添加到现有表。对现有表的创建语句会导致错误。
推荐阅读
- python - 如何在 python 中使用 azure 说话人识别 api
- python - Pandas 数据框列,其中包含不同列的不同长度的列表列表
- javafx - BorderPane 中的 JavaFX FileChooser
- python - Scrapy 返回 Null ([])
- angular - 使用 enterkey 提交多个表单
- javascript - 自定义 SingleValue 和 Option react-select - 显示选项,但不显示 SingleValue
- python - 一旦我的 tf2 模型开始训练,显示器就会变黑
- javascript - 如何设置 PayPal 结账
- html - 如何在 CSS 中制作一个椭圆形的 div?
- javascript - 将值从 JavaServlet 传递给 Javascript,在 Javascript 中调用函数