【发布时间】:2015-10-12 09:17:33
【问题描述】:
我有一个奇怪的问题,在创建视图一段时间后,applicationID 的默认值丢失或重置(我们不知道为什么,我们有类似 0.000 或 0 或 null 的值)。
CREATE VIEW [schemaA].[tableA]
AS
SELECT
*, 123456 applicationID
FROM
[schemaB].[dbo].[tableA]
如果我们运行ALTER 语句,applicationID 的值将返回到最初定义的值。
ALTER VIEW [schemaA].[tableA]
AS
SELECT
*, 123456 applicationID
FROM
[schemaB].[dbo].[tableA]
我需要提一下,在运行ALTER 语句之前,我们导出了视图DDL,它是正确的。
我如何确定是什么破坏了视图定义,或者视图是否应该有不同的定义(如果可能,可以设置一个默认值)。
谢谢
【问题讨论】:
-
这
applicationID在任何情况下都是文字(固定)值吗?你的CREATE VIEWstatememt 和上面一样吗?如果没有,请发布完整的声明。 -
@Shnugo 这个值在创建时是固定的,和上面的语句完全一样
-
“固定于创作”究竟是什么意思?这个语句是由某种动态过程重新创建的吗?还是只创建一次就永不改变?
-
可能有人更改了表结构(添加了一些字段)并忘记重新编译视图 - 在这种情况下,如果视图定义包含
select *,而不是明确的字段列表,SQL 服务器会破坏视图结果。 -
@Arvo,根据您的评论,我在回答中的示例更加具体。事实上,这甚至会混淆类型......反对
SELECT *的充分理由
标签: sql-server sql-server-2008 view