久久久久久久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.五月婷婷.com | 欧美一级在线免费 | 黄色综合 | 99精品欧美一区二区三区综合在线 | 涩在线 | 中文字幕日韩欧美一区二区三区 | 亚洲最大的成人网 | 久久91精品国产一区二区三区 | 亚洲精品乱码久久久久久按摩观 | 97免费在线观看视频 | 91免费看片 | 欧美一级免费黄色片 | 麻豆一区一区三区四区 | 麻豆changesxxx国产| 久久久久九九九女人毛片 | 一级欧美视频 | 中文字幕一区二区三区日韩精品 | h视频在线观看免费 | 中文字幕国产 | 国产精品久久久久久久久久免费看 | 国产成人精品久久二区二区 | 黄视频国产 | 夜夜艹| 久久综合成人精品亚洲另类欧美 | 国产成人99久久亚洲综合精品 | 国产免费看 | 超碰在线免费av | 日韩成人 | 成人3d动漫一区二区三区91 | 在线看h| 亚洲色欧美另类 | 成人二区 | 久久久精品视 | 天天操天天舔 | 台湾佬久久 | 伊人伊成久久人综合网站 |