久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

SCHEMA_NAME() 返回 NULL

SCHEMA_NAME() returns NULL(SCHEMA_NAME() 返回 NULL)
本文介紹了SCHEMA_NAME() 返回 NULL的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我在 T-SQL 腳本中使用 SCHEMA_NAME() 函數.

它為我返回 NULL,但為我的同事返回默認架構.

SCHEMA_NAME() 的文檔僅將 NULL 列為可能的值,同時還為 SCHEMA_NAME() 函數提供了一個參數.

以下是 SCHEMA_NAME() 的文檔:https://docs.microsoft.com/en-us/sql/t-sql/functions/schema-name-transact-sql

在調試這個問題時我應該尋找什么?

DBA 已檢查我的同事和我自己的權限是否相同.

我在不帶任何參數的情況下調用該函數,因此文檔中聲明的在 schema_id 無效時返回 NULL 的情況不適用 - 至少沒有明確說明.

DBA 確認我有一個默認架構,我使用以下選擇來確認我有一個默認架構:

select * from sys.database_principles dp where dp.name = USER_NAME();

DBA 將我的默認架構更改為其他內容,然后將其更改回來以防后臺設置了某些內容.

這發生在 SQL Studio 中以及當我使用 sqlcmd 在命令行上運行時.

我注意到當我運行 CREATE PROCEDURE myproc 過程是在我的默認架構中創建的,但是當我運行 execute myproc 我需要做 executemyschema.myproc.即:我必須指定架構.

我已通過在調用存儲過程中硬編碼架構名稱來驗證默認架構是否存在.

解決方案

當您在與 schema_id 不同的數據庫上執行查詢時,也會發生這種情況

例如

select sn = schema_name(schema_id) from [yourdbname].sys.all_objects

并且當前數據庫不是 [yourdbname]

I am using the SCHEMA_NAME() function in a a T-SQL script.

It returns NULL for me, but the default schema for my colleague.

The documentation for SCHEMA_NAME() only lists NULL as a possible value when one also supplies an argument to the SCHEMA_NAME() function.

Here is the documentation for SCHEMA_NAME(): https://docs.microsoft.com/en-us/sql/t-sql/functions/schema-name-transact-sql

What should I look for when debugging this problem?

The DBA has checked that my permissions are same for my colleague and myself.

I am calling the function without any arguments so the documentation's stated case of returning NULL when schema_id is not valid does not apply -- at least not explicitly.

The DBA confirmed I have a default schema and I used the following select to confirm I have a default schema:

select * from sys.database_principles dp where dp.name = USER_NAME();

The DBA changed my default schema to something else, then changed it back in case there is something set in the background.

This happens in SQL Studio and when I run on the command line using sqlcmd.

I have noticed that when I run CREATE PROCEDURE myproc the procedure is created in my default schema, but when I run execute myproc I need to do execute myschema.myproc. That is: I must specify the schema.

I have verified that the default schema exists by hard coding the schema name in the call to the stored procedure.

解決方案

This can also happen when you are performing query on a different database than the schema_id

e.g.

select sn = schema_name(schema_id) from [yourdbname].sys.all_objects 

and the current database is not [yourdbname]

這篇關于SCHEMA_NAME() 返回 NULL的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Converting Every Child Tags in to a Single Column with multiple Delimiters -SQL Server (3)(將每個子標記轉換為具有多個分隔符的單列-SQL Server (3))
How can I create a view from more than one table?(如何從多個表創建視圖?)
Create calculated value based on calculated value inside previous row(根據前一行內的計算值創建計算值)
How do I stack the first two columns of a table into a single column, but also pair third column with the first column only?(如何將表格的前兩列堆疊成一列,但也僅將第三列與第一列配對?) - IT屋-程序員軟件開發技
Recursive t-sql query(遞歸 t-sql 查詢)
Convert Month Name to Date / Month Number (Combinations of Questions amp; Answers)(將月份名稱轉換為日期/月份編號(問題和答案的組合))
主站蜘蛛池模板: 精品国产乱码久久久久久老虎 | 天天操夜夜操免费视频 | 成人免费网站www网站高清 | 中文字幕第90页 | 国产亚洲一区二区三区在线观看 | 久久一 | 亚洲成人精品在线 | 高清不卡毛片 | 仙人掌旅馆在线观看 | 国产日韩欧美一区二区在线播放 | 黄色av大片 | 青青激情网 | 国产成人精品午夜 | 久久精品网 | 亚洲欧美在线观看 | 婷婷国产一区 | 天天干天天插天天 | 亚洲男女视频在线观看 | 欧美中文字幕一区二区三区亚洲 | 日韩在线| 国产精品一区二区久久久久 | 毛片国产| 亚洲欧美一区二区三区在线 | 亚洲精品在线免费看 | 国产精品一区二区在线 | 黄色免费在线观看网站 | 999久久久 | 男女污网站 | 日韩一区三区 | 久久国品片 | 成年人黄色一级毛片 | 色婷婷亚洲 | 日本免费一区二区三区视频 | 91免费版在线| 日韩在线不卡视频 | 日本a在线| 日一区二区三区 | 欧美国产日韩一区二区三区 | 九九精品在线 | 粉嫩国产精品一区二区在线观看 | 成人免费在线观看 |