亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

SQL Server中修改“用戶自定義表類型”問題的分析與方法

2024-08-31 01:05:05
字體:
供稿:網(wǎng)友

前言

SQL Server開發(fā)過程中,為了傳入數(shù)據(jù)集類型的變量(比如接受C#中的DataTable類型變量),需要定義“用戶自定義表類型”,通過“用戶自定義表類型”可以接收二維數(shù)據(jù)集作為參數(shù),在需要修改“用戶自定義表類型”的時候,增加字段,刪除字段,修改字段類型等,它沒有像表一樣的alter table語法來進(jìn)行修改。

只能通過刪除重建來實現(xiàn),但是在刪除“用戶自定義表類型”的時候會提示有對象引用它(某些存儲過程用到了這個“用戶自定義表類型”),因此無法刪除。

為了達(dá)到公用的目的,有時候一個TableType可以在多個地方分別被引用到,這樣的話,勢必要先刪除所有的引用了這個“用戶自定義表類型”的對象(存儲過程等)

如果這個“用戶自定義表類型”被多個存儲過程引用,那么就要分別刪除多個引用了“用戶自定義表類型”的存儲過程,然后修改“用戶自定義表類型”,在重建存儲過程,這樣做起來似乎有點繞,這個問題可以用過EXEC sys.sp_refreshsqlmodule這個系統(tǒng)函數(shù)來簡介實現(xiàn)“用戶自定義表類型”的定義

TableType的基本使用

如下創(chuàng)建一個用戶自定義表類型

sql,用戶自定義表類型,sqlserver自定義類型,sqlserver,自定義函數(shù)

定義的TableType可以在用戶自定義表類型中找到

sql,用戶自定義表類型,sqlserver自定義類型,sqlserver,自定義函數(shù)

創(chuàng)建兩個存儲過程,分別用到了上面定義的用戶自定義表類型,模擬用戶自定義表類型被引用的情況

sql,用戶自定義表類型,sqlserver自定義類型,sqlserver,自定義函數(shù)

此時的存儲過程可以接收TableType參數(shù)并正常運行

sql,用戶自定義表類型,sqlserver自定義類型,sqlserver,自定義函數(shù)

TableType的修改

TableType類型不支持alter語法,也即無法直接修改TableType的定義

sql,用戶自定義表類型,sqlserver自定義類型,sqlserver,自定義函數(shù)

那么只能通過刪除TableType的方法來重建這個TableType,當(dāng)刪除的時候,仍然報錯,提示“因為它正由對象 '***' 引用??赡苓€有其他對象在引用此類型。”

sql,用戶自定義表類型,sqlserver自定義類型,sqlserver,自定義函數(shù)

此時只能刪除引用了這個TableType的對象來解決,下面可以查到那些對象引用了某一個TableType,然后分別刪除,重建TableType,再重建存儲過程,有點繞彎子。

sql,用戶自定義表類型,sqlserver自定義類型,sqlserver,自定義函數(shù)

可以先將自定義的某個TableType重命名,重命名的過程中有一個警告,這里先忽略它,隨后可以直接Drop Type dbo.MyTableType

sql,用戶自定義表類型,sqlserver自定義類型,sqlserver,自定義函數(shù)

刪除原TableType之后,重建(重定義)TableType

sql,用戶自定義表類型,sqlserver自定義類型,sqlserver,自定義函數(shù)

重建TableType之后,先前存儲過程中用到這個TableType的存儲過程是無法編譯通過的

sql,用戶自定義表類型,sqlserver自定義類型,sqlserver,自定義函數(shù)

此時就需要重新刷新引用對象的定義

sql,用戶自定義表類型,sqlserver自定義類型,sqlserver,自定義函數(shù)

刷新完成之后,原存儲過程就可以正常編譯了

sql,用戶自定義表類型,sqlserver自定義類型,sqlserver,自定義函數(shù)

最后刪除原始的TableType被重命名的TableType(被第一步重名的那個)

sql,用戶自定義表類型,sqlserver自定義類型,sqlserver,自定義函數(shù)

這樣子,整個過程就無需因為修改TableType的定義而刪除引用了TableType的對象了,在修改了TableType的定義之后,引用了這個TableType的對象可以正常運行,也可以根據(jù)修改之后的TableType做具體的使用

完整的腳本如下

--判斷Type是否存在,如果存在,重命名,隨后之后才再刪除,否則無法直接刪除IF EXISTS (SELECT 1 FROM sys.types t join sys.schemas s on t.schema_id=s.schema_id       and t.name='MyTableType' and s.name='dbo') EXEC sys.sp_rename 'dbo.MyTableType', 'obsoleting_MyTableType';GO--重建TYPE,比如原來是四個字段,現(xiàn)在想修改為三個字段,或者原來有三個字段想加一個字段變成四個字段CREATE TYPE dbo.MyTableType AS TABLE( Id INT NOT NULL, Name VARCHAR(255) NOT NULL,   Remark VARCHAR(255))GO--將原來引用將要刪除的TYPE全部重建一遍,否則原始存儲過程會報錯DECLARE @Name NVARCHAR(500);DECLARE REF_CURSOR CURSOR FORSELECT referencing_schema_name + '.' + referencing_entity_nameFROM sys.dm_sql_referencing_entities('dbo.MyTableType', 'TYPE'); OPEN REF_CURSOR; FETCH NEXT FROM REF_CURSOR INTO @Name; WHILE (@@FETCH_STATUS = 0) BEGIN  EXEC sys.sp_refreshsqlmodule @name = @Name;  FETCH NEXT FROM REF_CURSOR INTO @Name; END;CLOSE REF_CURSOR;DEALLOCATE REF_CURSOR;GO--最后刪除原始的被重命名的TableType(被第一步重名的那個)IF EXISTS (SELECT 1 FROM sys.types t    join sys.schemas s on t.schema_id=s.schema_id    and t.name='obsoleting_MyTableType' and s.name='dbo') DROP TYPE dbo.obsoleting_MyTableTypeGO--最后執(zhí)行授權(quán)GRANT EXECUTE ON TYPE::dbo.MyTableType TO publicGO

總結(jié):

TableType可以方便地接受二維數(shù)據(jù)作為參數(shù),從而可以達(dá)到批量處理數(shù)據(jù)的目的,避免傳遞進(jìn)去一大堆字符串,然后在對字符串解析的做法,從而可以在一定程度上提高sql的運行效率。

不過TableType的修改確實存在一定的問題,直接修改TableType會存在級聯(lián)刪除數(shù)據(jù)庫對象的情況,可以通過“曲線救國”的方式,來減小工作量的情況下修改TableType。

好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網(wǎng)的支持。


注:相關(guān)教程知識閱讀請移步到MSSQL教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
精品国产一区二区三区久久久蜜月| 久久青草欧美一区二区三区| 西游记1978| 国产精品sss在线观看av| 色老汉av一区二区三区| 日本精品在线| 好男人www社区在线视频夜恋| 女人18毛片水真多免费播放| 精品亚洲精品福利线在观看| 亚洲欧美综合久久久| 一区二区福利| 福利视频理论电影| 日本一区二区三区视频在线播放| 性做久久久久久免费观看| 精品一区二区三区视频在线播放| 日本欧美精品久久久| 国产精品一区二区三区四区在线观看| 97人人做人人人难人人做| 在线播放一级片| 久久精品a一级国产免视看成人| 亚洲青涩在线| 国产一区二区黄| 麻豆视频免费在线观看| 国产成人亚洲综合小说区| 嫩草影院发布页| 黄色一级视频在线观看| 国产在线观看免费一区| 欧美性猛交xxxx免费看久久久| 盗摄女厕thunder| 国产精品av久久久久久无| 国产成人成网站在线播放青青| 老司机午夜精品视频在线观看| av网站免费| 538精品在线观看| 999在线观看免费大全电视剧| 欧美亚洲色图视频| 亚洲男人天堂网| 天堂√在线中文官网在线| 国产综合色一区二区三区| 久久只精品国产| 欧美在线免费看视频| 亚洲男人天堂2024| 国产一级久久| 国产精品视频免费| 久久久久999| 欧美老女人性生活| 六月婷婷中文字幕| 欧美成人做性视频在线播放| 精品999日本| 污污的视频在线免费观看| 国产精品99精品无码视亚| 久久精品无码一区| 高清一区二区三区av| 欧美电影院免费观看| 中文字幕第一页在线视频| 人妻少妇精品无码专区二区| 精品综合久久久久久8888| 国产精品久久久久久久久免费相片| 国产精品伦理在线| wwwjizzjizzcom| 国内外成人免费激情在线视频| 日韩精品久久久久久久电影99爱| 300部国产真实乱| 欧美另类精品xxxx孕妇| 免费看av不卡| 四虎永久在线精品免费一区二区| 国产日韩欧美一区二区三区综合| 欧美私模裸体表演在线观看| 久久国产精品99久久久久久老狼| 欧美不卡视频| 99久久国产热无码精品免费| 久久精品夜色噜噜亚洲a∨| 欧美中日韩在线| 小早川怜子痴女在线精品视频| 韩国av一区二区三区在线观看| 国产一区二区三区高清| 国产98色在线| 高潮按摩久久久久久av免费| 人人妻人人澡人人爽人人欧美一区| 国产91aaa| 国产精品黄色在线观看| 伊人网在线免费| 在线视频播放大全| 青青草国产精品一区二区| 精品众筹模特私拍视频| 美女黄视频在线播放| 国产极品模特精品一二| 91精品国产一区二区三区| 春暖花开成人亚洲区| 午夜免费高清视频| www.日韩.com| 国产专区综合网| 91在线国产福利| 99久久久国产精品免费蜜臀| 国产一区二区三区在线| www.爱色av.com| 在线观看成人一级片| 日韩女优av电影在线观看| 欧美成人精品二区三区99精品| 91精品啪在线观看国产60岁| 九九热这里只有在线精品视| 美国黄色一级毛片| 精品国产免费久久久久久婷婷| 亚洲深夜影院| 国产91丝袜在线观看| 99热只有这里有精品| 成人在线高清| 欧美承认网站| 欧美黑人xxxx猛牲大交| 蜜桃一区二区三区四区| 91免费国产视频网站| 无码一区二区三区在线| 中文字幕一区二区三区四区欧美| 99精品国产一区二区青青牛奶| 免费看国产曰批40分钟| 五月婷婷久久久| 国产一级视频在线播放| 精品久久久香蕉免费精品视频| 日本亲与子乱a| 欧美成人三级在线观看| 亚洲一区日韩在线| 国产老女人av| 在线影院av| www.天堂在线观看| 精品免费在线| 日本在线观看免费视频| 亚洲精品成人影院| 国产欧美久久久精品影院| 日韩国产中文字幕| 青青草国产成人a∨下载安卓| 99综合久久| 香蕉在线播放| 欧美伦理一区二区| 亚洲一区二区三区四区在线观看| 国产精品一区免费观看| 亚洲一卡二卡三卡四卡无卡网站在线看| av中文字幕一区二区三区| 成年女人免费视频| 亚洲国产精品久久久天堂| 2012中文字幕在线视频| 国产成人美女视频| 日韩女优中文字幕| 国产精品亚洲自拍| 精品一区二区三区免费播放| 今天的高清视频免费播放成人| 国产人妻人伦精品| 午夜cr在线观看高清在线视频完整版| 成年网站免费入口在线观看| 老司机午夜福利视频| 奇米一区二区三区av| 99热在线免费| 狠狠综合久久| 一级久久久久久| 国产精品igao视频网网址不卡日韩| 最新国产麻豆精品| 亚洲精品在线一区二区| 成人女性文胸| 久久精品久久久久| 国产传媒在线观看| 91免费国产精品| 国产精品外国| 久久综合中文字幕| 久操成人av| 超碰超碰超碰超碰| 色婷婷久久久| 日韩免费毛片视频| 亚洲xxxx3d动漫| 男人添女人下面高潮视频| 国产成人综合在线| 男同互操gay射视频在线看| 欧洲av在线精品| 国产91精品高潮白浆喷水| 一起草在线视频| 国产亚洲精品久久久久久无几年桃| 欧美一级在线视频| 国产精品-色哟哟| 黑人巨大精品欧美一区二区桃花岛| 久久久男人天堂| 成人全视频高清免费观看| 免费成年人视频在线观看| 在线不卡中文字幕播放| 亚洲手机在线观看| 中文字幕久热精品视频在线| 免费黄色一级大片| av麻豆国产| 日韩国产在线播放| 天美星空大象mv在线观看视频| √天堂8资源中文在线| 在线播放免费视频| 欧美激情精品久久久久久大尺度| 中文字幕一区综合| 国产在线视频不卡二| 性欧美videohd高精| 999精品色在线播放| 国产精品777| 久久mv成人精品亚洲动漫| 国内欧美日韩| 人人爱人人干婷婷丁香亚洲| 夜夜嗨av一区二区三区四区| 国产高清第一页| 久久久一本精品99久久精品| 中文字幕在线播放视频| 色香欲www7777综合网| 亚洲精品911| 成人三级在线视频| 亚洲第一成人av| 黑人精品xxx一区| 久久精品国产免费看久久精品| 高清在线视频日韩欧美| 制服诱惑一区| 国产精品chinese在线观看| 亚洲视频手机在线观看| 国内外成人免费激情视频| 爱看av在线入口| 久久高清免费观看| 日韩欧美高清dvd碟片| 色中文字幕在线| 日本一区二区三区www| 久久国产精品久久久久久小说| 国产视频在线播放| 婷婷国产在线| 色呦哟—国产精品| 激情都市一区二区| www.国产精品| 国产精品主播一区二区| 国产精品国产三级国产a| 91麻豆精品国产综合久久久久久| 岛国av一区二区三区| 欧美电影免费播放| 国产成人精品视频免费看| 精品一区二区三区三区| 欧美日韩中文字幕在线| 国产精品无码午夜福利| 69堂免费精品视频在线播放| 91系列在线观看| 2020日本不卡一区二区视频| 欧美成人免费视频| 美女的诞生在线观看高清免费完整版中文| 日韩免费一级视频| av一区二区三| 四虎影视av| 欧洲美女女同性互添| 91成人在线视频观看| 欧美国产不卡| 久久超碰亚洲| 国产后入清纯学生妹| 国产精品丝袜久久久久久消防器材| 福利视频导航大全| 久久免费精品国产久精品久久久久| 亚洲天堂精品一区| 色婷婷综合在线| 亚洲免费观看在线视频| 国产日韩一区二区三免费高清| 精品视频在线免费观看| 黄色免费影视| 国产欧美日韩精品丝袜高跟鞋| 国内视频一区二区| 久久婷婷开心| 国产一二三四视频| 特黄特色特刺激视频免费播放| 欧美极品日韩| 免费看毛片的网站| 免费免费啪视频在线观播放| 91精品产国品一二三产区| av在线下载| 日韩久久久精品| 一级做a爰片毛片| 国产精品丝袜黑色高跟| 激情亚洲综合网| 欧美日韩国产影院| 99精品视频在线播放免费| 91香蕉嫩草影院入口| 亚洲老板91色精品久久| 蜜臀久久久久久999| 久久久精品区| 欧美在线短视频| 国产成人自拍高清视频在线免费播放| 蜜桃视频一区二区| 精品国产免费一区二区三区四区| 成人精品在线看| 国产黄大片在线观看| 欧美久久久久久一卡四| 爽爽影院免费观看视频| 久久久久久香蕉网| 天天躁日日躁狠狠躁av| 欧美日韩一区二区三区在线视频| 精品一区二区三区在线播放| 乱熟女高潮一区二区在线| 国产精品久久久久一区二区国产| 日韩在线你懂的| 精品欧美一区二区三区| 蜜臀av亚洲一区中文字幕| 熟女性饥渴一区二区三区| 国产亚洲精品成人av久久ww| 成人精品999| 91中文在线| 不卡的av一区| 亚洲天堂一二三| 麻豆九一精品爱看视频在线观看免费| 欧美一区二区三区四区高清| 午夜成人影视| 99热这里只有精品3| 同产精品九九九| 天天躁夜夜躁狠狠是什么心态| 国产福利视频一区二区三区| 久久免费成人精品视频| 欧美日免费三级在线| 午夜精品久久久久久久99水蜜桃| aa视频在线播放| 最新四虎影在线在永久观看www| 男人添女荫道口女人有什么感觉| 久久狠狠久久综合桃花| 亚洲日韩欧美一区二区在线| 动漫一区二区三区| 亚洲av无码一区东京热久久| 欧美日本乱大交xxxxx| 免费成人进口网站| 2019年中文字幕| 2018中文字幕一区二区三区| 中国丰满熟妇xxxx性| 99九九精品视频| 精品日本一区二区三区| 欧美xxxx做受欧美88bbw| 亚洲网在线观看| 飘雪影院手机免费高清版在线观看| 青青久草在线| 欧美一区二区日韩| 欧美aaaaaa午夜精品|