これを行うための単一の「魔法の」弾丸はありません。これはかなり珍しい操作であるため、ネイティブではサポートされていません。
実行できることは、システムカタログビューからテーブルの列を反復処理し、そのような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
ください。これで問題ありません。最初にライブデータのコピーでこれをテストしてください!