修改用户定义的数据类型
来源:互联网 发布:大的淘宝店铺转让平台 编辑:程序博客网 时间:2024/05/16 06:39
--sp_rebuildallview见本BLOG中的其它页面
createproceduresp_rechangfieldtype(@typenamevarchar(50),@newtypevarchar(50))
as
begin
declare@typeidint
declare@tablenamevarchar(50)
declare@columnvarchar(50)
declare@sqlstrvarchar(200)
declare@defaultidint
select@typeid=xusertype
fromsystypes
wherename=@typenameandxusertype>256
AND(is_member('db_owner')=1ORis_member('db_ddladmin')=1ORis_member(user_name(uid))=1)
declaremycursorcursorfor
selecto.name,c.name,c.cdefault
fromsyscolumnsc,systypest,sysusersu,sysobjectso
wherec.xusertype=@typeid
andt.xusertype=@typeid
ando.uid=u.uid
andc.id=o.id
ando.type='u'
openmycursor
fetchnextfrommycursorinto@tablename,@column,@defaultid
while@@fetch_status=0
begin
if@defaultid<>0
begin
set@sqlstr='altertable'+@tablename+'drop'+object_name(@defaultid)
exec(@sqlstr)
set@sqlstr='altertable'+@tablename+'altercolumn'+@column+''+@newtype
exec(@sqlstr)
-- set@sqlstr='altertable'+@tablename+'addcontraint'+@tablename++'default0'
end
else
begin
set@sqlstr='altertable'+@tablename+'altercolumn'+@column+''+@newtype
print@sqlstr
exec(@sqlstr)
end
--if@@error<>0
-- continue
fetchnextfrommycursorinto@tablename,@column,@defaultid
end
--如果没有约束,则可以直接删除。如果有约束。先处理约束。
closemycursor
deallocatemycursor
end
GO
createprocedureSP_CHANGEFIELD(@OLDTYPENAMEVARCHAR(50),@NEWDTYPEVARCHAR(50))
as
begin
exec('sp_addtypeU_LOCALTYPE,'''+@newdtype+'''')
execSP_rechangfieldtype@OLDTYPENAME,'U_LOCALTYPE'
EXECsp_rebuildallview
EXEC('sp_droptype'+@OLDTYPENAME)
EXEC('sp_addtype'+@OLDTYPENAME+','''+@newdtype+'''')
execSP_rechangfieldtype'U_LOCALTYPE',@OLDTYPENAME
EXECsp_rebuildallview
EXECsp_droptype'U_LOCALTYPE'
end
GO
--以下是示例。将U_HELLO的长度改为30
SP_ADDTYPEU_HELLO,'VARCHAR(10)'
GO
CREATETABLETESTTYPE(NAMEU_HELLO)
GO
SP_CHANGEFIELD'U_HELLO','VARCHAR(30)'
- 修改用户定义的数据类型
- 修改用户定义的数据类型
- 用户定义的数据类型转换
- 创建用户定义的数据类型
- 创建用户定义的数据类型
- c#之用户定义的数据类型转换
- (1)创建用户定义的数据类型
- 用户定义数据类型
- C#高级编程四十一天----用户定义的数据类型转换
- MVC下,修改用户验证为自己定义的数据表
- 不熟悉数据类型的定义
- TI 数据类型的定义
- 数据类型的定义
- 数据类型定义的重要性
- 抽象数据类型的定义
- 数据类型的定义
- 栈的数据类型定义
- 如何把"用户定义的数据类型"的ower改为dbo?
- SQL脚本生成的一些BUG(1)
- SQL脚本生成的一些BUG(2)
- 将中所有表的列信息显示出来
- 精彩的表数据排序分组
- 怎样做sqlserver的还原
- 修改用户定义的数据类型
- 让你的SQL运行速度明显提高
- 十大绝招保护
- 连接中三个常见的错误分析
- SQL语句和存储过程查询语句的流程控制
- 利用sp自制未公开的加密函数
- 2005常见问题解答
- 在SQL2005轻松配置SSIS包
- 高薪吸引电子工程教授频繁跳槽