Sql 更改具有相同列名的多个表的列类型

Sql 更改具有相同列名的多个表的列类型,sql,tsql,Sql,Tsql,我有一个数据库,可以跟踪对数据库中的每个表进行更新或插入的用户以及他们何时进行更新或插入。我们需要将类型从varchar(20)更改为varchar(50)。是否有一种方法可以编写一个脚本,深入研究所有具有该列名的表,并将其从varchar(20)更改为varchar(50) 这在MS SQL 2012服务器上。以下脚本将生成语句以更改列 SELECT 'ALTER TABLE ' + QUOTENAME(SCHEMA_NAME(schema_id)) + '.' + QUOTENAME(t.n

我有一个数据库,可以跟踪对数据库中的每个表进行更新或插入的用户以及他们何时进行更新或插入。我们需要将类型从varchar(20)更改为varchar(50)。是否有一种方法可以编写一个脚本,深入研究所有具有该列名的表,并将其从varchar(20)更改为varchar(50)


这在MS SQL 2012服务器上。

以下脚本将生成语句以更改列

SELECT 'ALTER TABLE ' + QUOTENAME(SCHEMA_NAME(schema_id)) + '.' + QUOTENAME(t.name) + ' ALTER COLUMN ' + QUOTENAME(c.name) + ' NVARCHAR(50)'
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%columniwantchanged%'

下面的脚本将生成语句来更改列

SELECT 'ALTER TABLE ' + QUOTENAME(SCHEMA_NAME(schema_id)) + '.' + QUOTENAME(t.name) + ' ALTER COLUMN ' + QUOTENAME(c.name) + ' NVARCHAR(50)'
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%columniwantchanged%'

下面的脚本将生成语句来更改列

SELECT 'ALTER TABLE ' + QUOTENAME(SCHEMA_NAME(schema_id)) + '.' + QUOTENAME(t.name) + ' ALTER COLUMN ' + QUOTENAME(c.name) + ' NVARCHAR(50)'
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%columniwantchanged%'

下面的脚本将生成语句来更改列

SELECT 'ALTER TABLE ' + QUOTENAME(SCHEMA_NAME(schema_id)) + '.' + QUOTENAME(t.name) + ' ALTER COLUMN ' + QUOTENAME(c.name) + ' NVARCHAR(50)'
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%columniwantchanged%'

你太棒了。谢谢,你太棒了。谢谢,你太棒了。谢谢,你太棒了。非常感谢。