Sql server 能否在SQL Server 2000中更改视图中的列长度?
不确定这是否允许,但如果允许,有人能告诉我T-SQL是什么吗?我试过以下方法,但没有效果Sql server 能否在SQL Server 2000中更改视图中的列长度?,sql-server,tsql,sql-server-2000,Sql Server,Tsql,Sql Server 2000,不确定这是否允许,但如果允许,有人能告诉我T-SQL是什么吗?我试过以下方法,但没有效果 alter [View_Name] alter column [Coln_Name] [New size/length] not null GO 感谢您的帮助。谢谢 不直接 这是从列表达式自动派生的。您可以将视图中的表达式转换为特定的数据类型。您需要更改基础表中的列长度,或更改构成视图的SELECT语句,以转换或转换列为不同的长度数据类型。视图是查看其他表中数据的方法;通常,数据只是底层表中的任何内容,因
alter [View_Name]
alter column [Coln_Name] [New size/length] not null
GO
感谢您的帮助。谢谢 不直接
这是从列表达式自动派生的。您可以将视图中的表达式转换为特定的数据类型。您需要更改基础表中的列长度,或更改构成视图的SELECT语句,以转换或转换列为不同的长度数据类型。视图是查看其他表中数据的方法;通常,数据只是底层表中的任何内容,因此您需要更改那里的列 但是,您可以使用视图执行诸如cast()或convert()之类的操作;这通常是个坏主意,因为每次使用视图时都需要重新获取数据,而且这些操作会增加开销。在视图的设计中,您可以决定强制转换为另一种数据类型,或者执行您想要的任何转换,但这会带来开销,并且不会改变原始数据 如果您知道当前视图选择的内容,可以使用以下内容:
Alter view Viewname[cloumn] as Select cast(original_data as varchar(n)) from Original_Table
我也遇到了同样的情况。我所做的是:
之后,视图中的列大小与我对基础表所做的更改相同。您不能更改视图中的列大小,因为视图是从其他表派生的。因此,如果需要更改列大小,请更改表的列大小。要更改列大小,请使用ALTER TABLE as: 更改表格[表格名称] 更改列[列名称]数据类型(大小)
更改列大小后,您可能需要删除视图并重新创建它。如果视图中显示的长度与基础表不匹配,请删除并重新创建视图 使用类似的方法来研究表和视图中的列长度
SELECT o.[name], *
FROM sys.all_columns c
INNER JOIN sys.objects o on o.[object_id]=c.[object_id]
WHERE c.[name] = 'OML'
-- AND c.[max_length]=11
ORDER BY O.[name];
要获取拖放和创建sql,我使用SSMS并右键单击上下文菜单(在对象资源管理器中的视图上),然后转到“脚本视图为”和“拖放并创建为”。长度不是来自基础表吗?视图实际上只是一个命名的即席查询。如果要更改特定字段的大小,则需要修改基础查询。这感觉像是在试图向视图插入数据?这个问题的动机是什么?