我试图获得最后的SQL插入的独特的自动生成密钥: -SQL错误:必须声明标量变量
INSERT [db].[xyyz] (x,y,z) values (@x,@y,@z)
SET @RowId = SCOPE_IDENTITY();
command.Parameters.AddWithValue("@x", x);
command.Parameters.AddWithValue("@y", y);
command.Parameters.AddWithValue("@z", z);
这样一来,我可以访问其他表并使用相同的RowId的,为当前事务插入数据。并因此建立所有表与单个事务之间的关系。
但是我得到的错误:
Must declare a scalar variable" for the @RowId
我相信介于什么ROWID是什么意思在SQL表坏了逻辑链路...谁能帮助我解决这个问题?
我在C#中工作,而不是在SQL Server中工作。
UPDATE:我无法让我的代码将RowID
值存储在变量中。我曾尝试:
Int32 newRowID = 0;
... SQL QUERY..
...
newRowID = (Int32)command.ExecuteScalar();
,但我得到一个空的异常错误:
Object reference not set to an instance of an object
谁能帮助我解决这个问题?
它告诉你是什么错误;你需要*声明*'@ RowId',除非你已经宣布它是elswehere并且没有显示它。 – LittleBobbyTables
,我该怎么做?我以前的版本为 int RowId = 0; – Philo
,因为我在C#和asp.net工作...是不是很糟糕? – Philo