首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将DateTime从ASP.NET插入到存储的Proc中

问将DateTime从ASP.NET插入到存储的Proc中
EN

Stack Overflow用户
提问于 2011-03-27 17:04:18
回答 2查看 892关注 0票数 0

我试图将来自asp.net应用程序的日期时间戳插入到数据库中,但我一直收到一个错误::

列"W_Date“不能修改,因为它要么是计算列,要么是UNION运算符的结果。

有人能帮我解释一下这件事吗。另外,我在标签中自动执行asp中的日期时间,然后用下面的代码提取sql插入的文本。

代码语言:javascript
复制
lblDate.Text = DateTime.Now.ToString();

这是正确的吗?

下面是我存储的Proc代码:

代码语言:javascript
复制
@date date
AS
BEGIN
  INSERT INTO tbl_Wiki(W_Title, C_ID, W_Date)
  VALUES (@title, @c_ID, GETDATE())
END
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-27 17:16:19

假设ASP.NET是正确的列名,那么您的W_Title代码听起来并没有什么问题。您是否对模式有足够的控制权来查看W_Title是否是计算列?

而且,看起来您将"date“作为参数传递给proc,但在INSERT语句中没有使用它。如果W_Date是始终为当前日期的计算列,则应删除insert语句中的W_Date参数。

票数 1
EN

Stack Overflow用户

发布于 2011-03-27 17:18:32

检查表W_Date中列tbl_Wiki的定义。它可能是一个计算列,这意味着您不能修改它。

您可以使用此查询来检查是否计算了列:

代码语言:javascript
复制
select  is_computed 
from    sys.columns 
where   object_id = object_id('tbl_Wiki') 
        and name = 'W_Date'

计算列的示例:

代码语言:javascript
复制
create table Sample (a int, b int, c as sqrt(a*a+b+b))

在这里,每次检索行时都会计算c。不能通过在insert或update期间指定值来推翻计算。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5450763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档