C# 在单个sql语句中插入和更新sql语句
我想在单个语句中创建insert和update sql语句。但insert语句用于一个表,update语句用于另一个表 这是您的位置表C# 在单个sql语句中插入和更新sql语句,c#,sql,C#,Sql,我想在单个语句中创建insert和update sql语句。但insert语句用于一个表,update语句用于另一个表 这是您的位置表 CREATE TABLE [dbo].[Appliance_Location] ( [Appliance_Id] NCHAR (10) NOT NULL, [RoomId] NVARCHAR (20) NOT NULL, [ApplianceName] NCHAR (10) NOT NULL, [AddDate] DATE
CREATE TABLE [dbo].[Appliance_Location] (
[Appliance_Id] NCHAR (10) NOT NULL,
[RoomId] NVARCHAR (20) NOT NULL,
[ApplianceName] NCHAR (10) NOT NULL,
[AddDate] DATE NULL,
CONSTRAINT [PK_Appliance_Location] PRIMARY KEY CLUSTERED ([Appliance_Id] ASC)
))
这是设备计数表
CREATE TABLE [dbo].[Appliance_Count] (
[RoomId] NVARCHAR (20) NOT NULL,`enter code here`
[Bulb] INT NOT NULL,
[Fan] INT NOT NULL,
[AC] INT NOT NULL,
[Computer] INT NOT NULL,
CONSTRAINT [PK_Appliance_Count] PRIMARY KEY CLUSTERED ([RoomId] ASC)
))
当我将设备插入设备位置表时,设备计数表中该特定设备的计数应更新不可能在单个查询中插入和更新。但是对于这项任务,您有一个选择。您可以创建触发器来插入一个表。并通过其他表中的更新值触发 不确定其他SQL服务器如何,但允许您使用MS SQL中的相同语法执行多个查询
using (SqlConnection connection = CreateConnection())
{
SqlCommand command = connection.CreateCommand();
command.CommandText = @"INSERT INTO `TableA` VALUES (1, 2, 3);
UPDATE `TableB` SET [Val] = 'value' WHERE [Id] > 10";
command.CommandType = CommandType.Text;
// ... other initializations
return command.ExecuteNonQuery();
}
您甚至可以返回值:
INSERT INTO `TableC` VALUES (1, 'value');
SELECT SCOPE_IDENTITY() AS Id;
在此查询之后,您可以获取SQL reader并从响应中读取“Id”值
为什么不先试试再问?到目前为止你做了什么?检查
MERGE
statement;)。你说的“没用”是什么意思?怎么搞的?这是一个错误吗?它不显示错误,但插入是有效的,更新是无效的