我是靠谱客的博主 还单身宝贝,最近开发中收集的这篇文章主要介绍mysql用户名定义格式_修改用户定义的数据类型,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

--SQLSERVER的自定义类型比较好用吧,但是,一旦引用该数据类型后,想修改数据类型,就是一大头疼的事了,本存储过程就是专门对付它的。 --sp_rebuildallview 见本BLOG中的其它页面 create procedure sp_rechangfieldtype(@typename varchar(50), @newtype v

--SQLSERVER的自定义类型比较好用吧,但是,一旦引用该数据类型后,想修改数据类型,就是一大头疼的事了,本存储过程就是专门对付它的。

--sp_rebuildallview 见本BLOG中的其它页面create procedure sp_rechangfieldtype(@typename varchar(50), @newtype varchar(50))

as

begin

declare @typeid int

declare @tablename varchar(50)

declare @column varchar(50)

declare @sqlstr varchar(200)

declare @defaultid int

select @typeid = xusertype

from systypes

where name = @typename and xusertype > 256

AND (is_member('db_owner') = 1 OR is_member('db_ddladmin') = 1 OR is_member(user_name(uid))=1)

declare mycursor cursor for

select o.name, c.name, c.cdefault

from syscolumns c, systypes t, sysusers u, sysobjects o

where c.xusertype = @typeid

and t.xusertype = @typeid

and o.uid = u.uid

and c.id = o.id

and o.type = 'u'

open mycursor

fetch next from mycursor into @tablename, @column, @defaultid

while @@fetch_status = 0

begin

if @defaultid <> 0

begin

set @sqlstr = 'alter table ' + @tablename + ' drop ' + object_name(@defaultid)

exec(@sqlstr)

set @sqlstr = 'alter table ' + @tablename + ' alter column ' + @column + ' ' + @newtype

exec(@sqlstr)

-- set @sqlstr = 'alter table ' + @tablename + ' add contraint ' + @tablename + 'df'+@column + ' default 0'

end

else

begin

set @sqlstr = 'alter table ' + @tablename + ' alter column ' + @column + ' ' + @newtype

print @sqlstr

exec(@sqlstr)

end

--if @@error <> 0

-- continue

fetch next from mycursor into @tablename, @column, @defaultid

end

--如果没有约束,则可以直接删除。如果有约束。先处理约束。

close mycursor

deallocate mycursor

end

GO

create procedure SP_CHANGEFIELD(@OLDTYPENAME VARCHAR(50), @NEWDTYPE VARCHAR(50))

as

begin

exec('sp_addtype U_LOCALTYPE, ''' + @newdtype + '''')

exec SP_rechangfieldtype @OLDTYPENAME, 'U_LOCALTYPE'

EXEC sp_rebuildallview

EXEC('sp_droptype ' + @OLDTYPENAME)

EXEC('sp_addtype ' + @OLDTYPENAME + ', ''' + @newdtype + '''')

exec SP_rechangfieldtype 'U_LOCALTYPE', @OLDTYPENAME

EXEC sp_rebuildallview

EXEC sp_droptype 'U_LOCALTYPE'

end

GO

--以下是示例。将U_HELLO的长度改为 30

SP_ADDTYPE U_HELLO, 'VARCHAR(10)'

GO

CREATE TABLE TESTTYPE(NAME U_HELLO)

GO

SP_CHANGEFIELD 'U_HELLO', 'VARCHAR(30)'

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

最后

以上就是还单身宝贝为你收集整理的mysql用户名定义格式_修改用户定义的数据类型的全部内容,希望文章能够帮你解决mysql用户名定义格式_修改用户定义的数据类型所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部