好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > SQL SERVER修改函數(shù)名容易引發(fā)的問題分析

SQL SERVER修改函數(shù)名容易引發(fā)的問題分析

熱門標(biāo)簽:地圖標(biāo)注可以編輯地名嗎 濮陽清豐400開頭的電話申請 樂昌電話機(jī)器人 臺灣外呼系統(tǒng)軟件 南通智能外呼系統(tǒng)怎么樣 地圖標(biāo)注跑線下市場 真3地圖標(biāo)注 南京怎么申請400這種電話 疫情時期電話機(jī)器人

1. 問題

今天遇到一個奇怪的問題:使用sp_helptext XXX查詢出來的函數(shù)定義名竟然跟函數(shù)名不同,而sp_helptext實(shí)際是查詢sys.all_sql_modules這個系統(tǒng)視圖的。直接查詢這個視圖的definition字段,發(fā)現(xiàn)跟sp_helptext是一樣的。難道是系統(tǒng)視圖也存在緩存之類的機(jī)制?或者是個BUG?對于第一個問題,當(dāng)時情況緊急,沒有時間去求證是否存在了。第二個問題,我想沒什么可能,SQL SERVER發(fā)展到今天(SQL 2016正式版準(zhǔn)備推出,我使用的環(huán)境則是SQL 2008 R2,打了SP3),已經(jīng)是很成熟的一個系統(tǒng),即使是出現(xiàn)BUG也不是我這種水平的人能發(fā)現(xiàn)的,肯定是哪我哪里弄錯了。于是求助于數(shù)據(jù)庫技術(shù)交流群,很快有大神回答了是改名的問題。我馬上就想起這個函數(shù)在一個多星期前,因?yàn)闇y試的需要,通過SSMS改了原函數(shù)名,而SQL SERVER不會因?yàn)楦拿ジ聅ys.all_sql_modules視圖的definition字段的!于是就造成了已經(jīng)編譯好的函數(shù)與sys.all_sql_modules系統(tǒng)視圖的函數(shù)定義出現(xiàn)了不一致的情況。

2. 重視與分析問題

做一個測試來重現(xiàn)下問題。首先,新建一個簡單的測試函數(shù)dbo.ufn_test_1。

USE AdventureWorks2008R2;
GO
IF OBJECT_ID(N'dbo.ufn_test_1') IS NOT NULL
BEGIN
DROP FUNCTION dbo.ufn_test_1;
END
GO
CREATE FUNCTION dbo.ufn_test_1 ()
RETURNS CHAR(1)
AS
BEGIN
RETURN ('F');
END
GO 

code-1: 創(chuàng)建函數(shù)dbo.ufn_test_1

這時,使用sp_helptext和sys.all_sql_modules查詢,一切正常。

EXEC sp_helptext [dbo.ufn_test_1];
GO
SELECT OBJECT_ID('dbo.ufn_test_1') AS a, * 
FROM sys.all_sql_modules
WHERE [object_id] = OBJECT_ID('dbo.ufn_test_1');
GO 

code-2:查詢函數(shù)dbo.ufn_test_1的定義

figure-1: 查詢函數(shù)dbo.ufn_test_1的定義

在SSMS上直接改名為dbo.ufn_test_2。

figure-2: 修改函數(shù)名

再去查詢函數(shù)dbo.ufn_test_2的定義。這樣,就出現(xiàn)了已經(jīng)編譯好的函數(shù)跟在視圖中的函數(shù)定義出現(xiàn)了不一致的情況!如果通過sp_helptext和sys.all_sql_modules查詢出現(xiàn)的定義去更新生產(chǎn)服務(wù)器,就肯定會出現(xiàn)問題。

3. 解決與結(jié)論

解決方法也很簡單,把這個函數(shù)重建即可。如果使用SSMS的右鍵修改(Modify)或生成相關(guān)腳本(Script Function as)的菜單,則不會出現(xiàn)以上的問題。同樣的問題與解決方法,也適用于存儲過程。

結(jié)論:

(1)盡量不要修改對象名,確實(shí)要修改的話,就重建吧。如果是表并且包含的大量數(shù)據(jù)要重建的話,就比較麻煩了,即使是修改表名不會出現(xiàn)像函數(shù)、存儲過程的問題,但修改表名涉及應(yīng)用程序等問題。

(2)盡量使用SSMS的右鍵菜單修改或生成對象的定義。但如果函數(shù)或存儲過程太多,會覺得sp_helptext和sys.all_sql_modules會更方便些,查詢出來的結(jié)果要認(rèn)真核對下對象名是否一致即可。這里提一下,sp_helptext有些限制,可以參考SQL中print、sp_helptext的限制與擴(kuò)展。

您可能感興趣的文章:
  • sqlserver 2008手工修改表結(jié)構(gòu),表不能保存的問題與解決方法
  • SQLServer觸發(fā)器創(chuàng)建、刪除、修改、查看示例代碼
  • sqlserver 批量刪除存儲過程和批量修改存儲過程的語句
  • sqlserver對字段的添加修改刪除、以及字段的說明
  • sqlserver 修改列名及表名的sql語句
  • sqlserver2008查看表記錄或者修改存儲過程出現(xiàn)目錄名無效錯誤解決方法
  • SqlServer修改數(shù)據(jù)庫文件及日志文件存放位置
  • SqlServer Mysql數(shù)據(jù)庫修改自增列的值及相應(yīng)問題的解決方案

標(biāo)簽:阿里 南京 陜西 河北 廣安 馬鞍山 通遼 福建

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQL SERVER修改函數(shù)名容易引發(fā)的問題分析》,本文關(guān)鍵詞  SQL,SERVER,修改,函數(shù),名,容易,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQL SERVER修改函數(shù)名容易引發(fā)的問題分析》相關(guān)的同類信息!
  • 本頁收集關(guān)于SQL SERVER修改函數(shù)名容易引發(fā)的問題分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 禁忌1980美国式禁忌2| 极品美女嫩模瑶瑶大尺度啪啪| 91人妻久久久久久久久蜜臀| 久久久久久久伊人电影| 狼群影院在线播放手机视频| 出轨娇妻的呻吟1一9| 国产黄a三级三级三级看三级 | 99re最新| 91在线无码精品秘?入口色| 欧美狂交| 苍井空波多野结衣AA片| 黄色软件3.0.3| 三个丰满女警花撅着白嫩屁股视频 | 皇上隔着纱衣含乳尖H1VS1| 生活中的玛丽k8一经典片| 麻豆+无码+国产在线人獸电影| 免费人成在线观看网站品爱网日本| 欧美sex黑人大炮| 波多野结衣电影在线播放| 久久极品视频| 嗯啊…在教室里做h| 中文字幕一区二区三区麻豆木下凛| 欧美日韩精品一区二区另类| 直男小鲜肉相互交口视频| 别揉我奶头?啊?嗯嗯古文| 亂倫強暴強姦在线观看| 97人妻精品一区二区三区免费| 啊迈开腿让我看看你的草莓| 无码爆乳一区二区臀久| 爽爽影院一级a| 女人的逼网站| 日韩美女在线看免费观看| 老师你下面好紧好湿丝袜视频| 宝贝,好舒服,好紧,好爽| 国产熟女鲁鲁视频草莓AV| 国产午夜精品自在自线之la| 欧美国产午夜色爽爽| 公交车上的诗请1h| 农村乡下一级毛片精品| 午夜剧场91| 毛片免费在线视频|