I am in a situation where I must update an existing database structure from varchar to nvarchar using a script. Since this script is run everytime a configuration applicati
You can run the following script which will give you a set of ALTER commands:
SELECT 'ALTER TABLE ' + isnull(schema_name(syo.id), 'dbo') + '.' + syo.name
+ ' ALTER COLUMN ' + syc.name + ' NVARCHAR(' + case syc.length when -1 then 'MAX'
ELSE convert(nvarchar(10),syc.length) end + ');'
FROM sysobjects syo
JOIN syscolumns syc ON
syc.id = syo.id
JOIN systypes syt ON
syt.xtype = syc.xtype
WHERE
syt.name = 'varchar'
and syo.xtype='U'
There are, however, a couple of quick caveats for you.
NVARCHAR
as well.VARCHAR
> 4000 you will need to modify it to be NVARCHAR(MAX)
But those should be easily doable with this template.
If you want this to run automagically you can set it in a WHILE
clause.