没有一个单一的“神奇”子弹可以做到这一点 - 这是一种相当不寻常的操作,因此它本身不受支持。
您可以做的是从系统目录视图中迭代表的列,即时创建这样的 ALTER 语句,然后执行它 - 如下所示:
DECLARE AlterTableCursor CURSOR FAST_FORWARD
FOR
SELECT
AlterCmd = 'ALTER TABLE dbo.YourTableNameHere ALTER COLUMN ' + name + ' VARCHAR(255) NULL'
FROM
sys.columns
WHERE
object_id = OBJECT_ID('dbo.YourTableNameHere')
DECLARE @AlterTableCmd NVARCHAR(200)
OPEN AlterTableCursor
FETCH NEXT FROM AlterTableCursor INTO @AlterTableCmd
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC (@AlterTableCmd)
FETCH NEXT FROM AlterTableCursor INTO @AlterTableCmd
END
CLOSE AlterTableCursor
DEALLOCATE AlterTableCursor
用你的实际表名替换YourTableNameHere
- 你应该很高兴!首先在您的实时数据副本上进行测试!