4,707 questions
Hi @zoe Ohara ,
Please try the following.
Notable points:
-
IIF()
instead ofCASE
statement. - Use of
QUOTENAME()
function.
SQL
SELECT sql='alter table ' + QUOTENAME(d.name) + ' alter column ' + QUOTENAME(a.name) + ' char(' + CONVERT(VARCHAR(20), a.prec) + ')'
+ IIF(a.isnullable=0, ' NOT NULL', ' NULL')
,d.name AS Tablename, b.name AS datatype
FROM syscolumns a
INNER JOIN systypes b
ON a.xtype=b.xusertype
INNER JOIN sysobjects d
ON a.id=d.id
WHERE d.xtype='U' AND d.name<>'dtproperties'
AND b.name IN ('varchar', 'nvarchar') ;