我处于这样的情况,我必须使用脚本将现有的数据库结构从varchar更新为nvarchar.由于每次运行配置应用程序时都会运行这个脚本,所以我宁愿确定一个列是否已经被更改为nvarchar,而不是对表进行更改.我必须支持的数据库是sql Server 2000,2005和2008.
解决方法
以下查询应该可以让您满足您的需求:
IF EXISTS (SELECT * FROM sysobjects syo JOIN syscolumns syc ON syc.id = syo.id JOIN systypes syt ON syt.xtype = syc.xtype WHERE syt.name = 'nvarchar' AND syo.name = 'MY TABLE NAME' AND syc.name = 'MY COLUMN NAME') BEGIN ALTER ... END