我正在尝试将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
答案 0 :(得分:1)
如果W_Title是正确的列名,那么您的ASP.NET代码听起来没有任何问题。您是否对模式有足够的控制权以查看W_Title是否为计算列?
此外,您似乎已经过了" date"作为proc的参数,但是你没有在INSERT语句中使用它。如果W_Date是一个永远是当前日期的计算列,则应该在insert语句中删除W_Date参数。
答案 1 :(得分:0)
检查表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
期间指定值来否决计算。