您的位置:首页 > 数据库

HOW TO: Change the Owner of a User-Defined Data Type That Is in Use in SQL Server 2000

2011-08-31 14:47 1006 查看
This article describes how to change the owner of a user-defined data type that
is in use.

To change the owner of a user-defined data type, you must drop
and then re-create the data type in the context of the owner you want. However,
if the user-defined data type is in use, you will receive the following error
message when you try to drop the data type:

Server: Msg 15180, Level 16, State 1, Procedure sp_droptype,
Line 32 Cannot drop. The data type is being used.

Steps to Change the Owner of a User-Defined Data Type That Is
in Use

// loadTOCNode(2, 'summary');

// ]]>
To change the owner of a user-defined data type that is in use, follow these
steps:

Script out the definition of the user-defined data type with SQL Server
Enterprise Manager (SEM).

Expand your SQL Server, expand Databases, expand your database, and
then expand User defined data types.

In the right pane, right-click the data type you want, and then click All
Tasks
.

Click Generate SQL Script, and then click OK.

Select the file name and location in which you will store the script.

Determine all the tables or columns that are using the user-defined data
type by using the following code (replace the database name and data type with
your database name and data type):

USE database name
SELECT TABLE_CATALOG, TABLE_NAME, COLUMN_NAME, DOMAIN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DOMAIN_NAME = 'data type'


NOTE: In this context, DOMAIN_NAME
represents the user-defined data type.

For each table that is using the user-defined data type, change the column
data type to the base data type by using an ALTER TABLE statement. For example
to change mytable..mycolumn to the datetimebase data type, use:

ALTER TABLE mytable ALTER COLUMN mycolumn datetime


Drop the user-defined data type.

Re-create the user-defined data type by using the script you saved in step 4
under the context of the owner you want.

Change all the columns you want back to the user-defined data type by using
an ALTER TABLE statement as in step 7.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐