SQL Server 2005中 - T-SQL基于参数来增加字段大小

我想知道如果有一个表中的方式来遍历所有列,并增加基于什么电流大小的每个字段的大小。 基本上,我需要目前有1000字的字段大小的任何字段设置为1000个字符。 我可以这样做

ALTER TABLE tableName ALTER COLUMN nvarchar(1000)

对,我想改变的每个领域,但也有数百个领域,我想如果可能的话做编程。 谢谢。

--------------解决方案-------------

使用此生成的所有变更表

SELECT
'ALTER TABLE ' +
OBJECT_SCHEMA_NAME(c.object_id) + '.' + OBJECT_NAME(c.object_id) +
' ALTER COLUMN '+ C.name + ' ' + T.[name] + ' (1000) ' +
CASE WHEN c.is_nullable = 0 THEN 'NOT' ELSE '' END + ' NULL'
FROM
sys.columns C
JOIN
sys.types T ON C.system_type_id = T.system_type_id
WHERE
T.[name] LIKE '%varchar' AND C.max_length < 1000
AND
OBJECTPROPERTYEX(c.object_id, 'IsMSShipped') = 0

它与系统的观点更容易。

下面是通过所有命名表的列的一些代码来循环。 它只是选择他们的详细资料; 您需要填写您在循环做什么。

declare @tableName varchar(32)
select @tableName = 'tableName'

declare @i int
select @i = count(*) from INFORMATION_SCHEMA.COLUMNS
where Table_Name = @tableName
while @i > 0
begin
select * from INFORMATION_SCHEMA.COLUMNS where Table_Name = @tableName and Ordinal_Position = @i
select @i = @i-1
end

你会有兴趣在INFORMATION_SCHEMA.COLUMNS视图中的字段是“DATA_TYPE”和“CHARACTER_MAXIMUM_LENGTH”

我想,我也做了假设,您所做的更改不会改变列序号,但如果他们确实可以以另一种方式进行选择。

分类:SQL Server 2005中 时间:2012-10-18 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 3.619 (s). 10 q(s)