SQL Server 批量转换指定字段类型为另一种类型

SQL Server 批量转换指定字段类型为另一种类型存储过程:

CREATE PROCEDURE convertFieldType AS
DECLARE tb CURSOR FOR SELECT
SQL = 'alter   table   [' + d.name + '] alter  column [' + a.name + '] 目标类型'
FROM
syscolumns a
LEFT JOIN systypes b ON a.xtype = b.xusertype
INNER JOIN sysobjects d ON a.id = d.id
AND d.xtype = 'U'
AND d.name <> 'dtproperties'
WHERE
b.name IN ('原类型')
AND NOT EXISTS (
SELECT
1
FROM
sysobjects
WHERE
xtype = 'PK'
AND name IN (
SELECT
name
FROM
sysindexes
WHERE
indid IN (
SELECT
indid
FROM
sysindexkeys
WHERE
id = a.id
AND colid = a.colid
)
)
)   
ORDER BY
d.name,
a.name
DECLARE @SQL VARCHAR (1000) OPEN tb FETCH NEXT
FROM
tb INTO @SQL
WHILE @@fetch_status = 0
BEGIN
EXEC (@SQL) FETCH NEXT
FROM
tb INTO @SQL
END CLOSE tb DEALLOCATE tb


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值