我试图将来自asp.net应用程序的日期时间戳插入到数据库中,但我一直收到一个错误::
列"W_Date“不能修改,因为它要么是计算列,要么是UNION运算符的结果。
有人能帮我解释一下这件事吗。另外,我在标签中自动执行asp中的日期时间,然后用下面的代码提取sql插入的文本。
lblDate.Text = DateTime.Now.ToString();这是正确的吗?
下面是我存储的Proc代码:
@date date
AS
BEGIN
INSERT INTO tbl_Wiki(W_Title, C_ID, W_Date)
VALUES (@title, @c_ID, GETDATE())
END发布于 2011-03-27 17:16:19
假设ASP.NET是正确的列名,那么您的W_Title代码听起来并没有什么问题。您是否对模式有足够的控制权来查看W_Title是否是计算列?
而且,看起来您将"date“作为参数传递给proc,但在INSERT语句中没有使用它。如果W_Date是始终为当前日期的计算列,则应删除insert语句中的W_Date参数。
发布于 2011-03-27 17:18:32
检查表W_Date中列tbl_Wiki的定义。它可能是一个计算列,这意味着您不能修改它。
您可以使用此查询来检查是否计算了列:
select is_computed
from sys.columns
where object_id = object_id('tbl_Wiki')
and name = 'W_Date'计算列的示例:
create table Sample (a int, b int, c as sqrt(a*a+b+b))在这里,每次检索行时都会计算c。不能通过在insert或update期间指定值来推翻计算。
https://stackoverflow.com/questions/5450763
复制相似问题