Sql server 将整个数据库varchar转换为大写

Sql server 将整个数据库varchar转换为大写,sql-server,sql-server-2012,Sql Server,Sql Server 2012,本周,风险部门告诉我们,我们的系统必须只接受大写文本。我们已投入生产近6个月,最初的项目并未考虑到这一点。有没有简单的方法将数据库的所有varchar转换为大写 我不知道这是否是最好的方法,但我有时会使用它。它使用目录视图,使用 子句并使用执行生成的语句 如何定义“easy”?不,我真正需要的是对整个数据库的列/行/字段进行css“文本转换:大写”。我不需要“更新表集列=大写(列)”来定义“easy”'对于每个表和列,为每个varchar表/列生成update语句有什么困难?编写一个查询,使用I

本周,风险部门告诉我们,我们的系统必须只接受大写文本。我们已投入生产近6个月,最初的项目并未考虑到这一点。有没有简单的方法将数据库的所有varchar转换为大写

我不知道这是否是最好的方法,但我有时会使用它。它使用目录视图,使用 子句并使用执行生成的语句


如何定义“easy”?不,我真正需要的是对整个数据库的列/行/字段进行css“文本转换:大写”。我不需要“更新表集列=大写(列)”来定义“easy”'对于每个表和列,为每个varchar表/列生成update语句有什么困难?编写一个查询,使用
INFORMATION\u SCHEMA.COLUMNS
sys.COLUMNS
生成SQL,然后运行它。
DECLARE 
    @stm nvarchar(max),
    @err int

SELECT @stm = (
    SELECT CONCAT(
        'UPDATE ', OBJECT_NAME(c.OBJECT_ID), 
        ' SET ',
        c.name,
        ' = UPPER(',
        c.name, '); ')
    FROM sys.columns AS c
    JOIN sys.types AS t ON c.user_type_id = t.user_type_id
    WHERE t.name = 'varchar'
    ORDER BY c.OBJECT_ID
    FOR XML PATH('')
)
EXEC @err = sp_executesql @stm
IF @err = 0 
    PRINT 'OK'
ELSE 
    PRINT 'Error'