powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / metadata visibility
18 сообщений из 18, страница 1 из 1
metadata visibility
    #39667107
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
господа сейчас нашел какое то странное поведение sp_help

у когонибудь она работает по sp_hexadecimal?

репро

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
use master;
go
if object_id('[dbo].[sp_hexadecimal]', N'P') is not null drop procedure [dbo].[sp_hexadecimal];
go
CREATE OR ALTER PROCEDURE [dbo].[sp_hexadecimal]
    @binvalue varbinary(256),
    @hexvalue varchar (514) OUTPUT
AS
DECLARE @charvalue varchar (514)
DECLARE @i int
DECLARE @length int
DECLARE @hexstring char(16)
SELECT @charvalue = '0x'
SELECT @i = 1
SELECT @length = DATALENGTH (@binvalue)
SELECT @hexstring = '0123456789ABCDEF'
WHILE (@i <= @length)
BEGIN
  DECLARE @tempint int
  DECLARE @firstint int
  DECLARE @secondint int
  SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1))
  SELECT @firstint = FLOOR(@tempint/16)
  SELECT @secondint = @tempint - (@firstint*16)
  SELECT @charvalue = @charvalue +
    SUBSTRING(@hexstring, @firstint+1, 1) +
    SUBSTRING(@hexstring, @secondint+1, 1)
  SELECT @i = @i + 1
END

SELECT @hexvalue = @charvalue
go

sp_help N'sp_hexadecimal'





и я чето не понимаю по sp_help_revlogin ну или любой другой пользовательской процедурку в мастере оно работает. а тут возникает
Код: sql
1.
2.
сообщение: 15009, уровень: 16, состояние: 1, процедура: sp_help, строка: 79 [строка начала пакета: 1]
The object 'sp_hexadecimal' does not exist in database 'master' or is invalid for this operation.



под sysadmin!
...
Рейтинг: 0 / 0
metadata visibility
    #39667113
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff,

авторCREATE OR ALTER

Вы большой фантазёр.
...
Рейтинг: 0 / 0
metadata visibility
    #39667115
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов,

Microsoft SQL Server 2016 (SP2) (KB4052908) - 13.0.5026.0 (X64)
Mar 18 2018 09:11:49
Copyright (c) Microsoft Corporation
Enterprise Edition: Core-based Licensing (64-bit) on Windows Server 2012 R2 Standard 6.3 <X64> (Build 9600: ) (Hypervisor)
...
Рейтинг: 0 / 0
metadata visibility
    #39667116
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав КолосовВы большой фантазёр.
вы просто отстали от жизни
...
Рейтинг: 0 / 0
metadata visibility
    #39667128
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex,

Вах! Сижу в своем болоте SQL2012...
...
Рейтинг: 0 / 0
metadata visibility
    #39667141
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов,

так не суть важно как создать процедурку.

на версиях ниже sp_help тоже вываливается в ошибку по sp_hexadecimal? у меня сейчас просто под рукой только 16 интансы
...
Рейтинг: 0 / 0
metadata visibility
    #39667147
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp_help вашу процедуру не знает, т.к. она не системная
...
Рейтинг: 0 / 0
metadata visibility
    #39667149
Eleanor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff,

Дело не в sp_help, а в sp_hexadecimal - мне даже не удается её переименовать, выдается ошибка
Either the parameter @objname is ambiguous or the claimed @objtype (OBJECT) is wrong. (Microsoft SQL Server, Error: 15248)
...
Рейтинг: 0 / 0
metadata visibility
    #39667154
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eleanor,

такое впечатление что где то жестких хардкод в функции object_id
потому что в sp_help используется инструкция
select @objid = object_id, @sysobj_type = type from sys.all_objects where object_id = object_id(@objname)

но я никак понять не могу, потому что просто если выполнять отдельную инструкцию строка возвращается, а по профайлеру смотреть в процедурке он строку не возвращает.
...
Рейтинг: 0 / 0
metadata visibility
    #39667162
Eleanor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ffтакое впечатление что где то жестких хардкод
Хардкод по имени sp_hexadecimal?
Если создать такую же процедуру hexadecimal_2, то с ней всё работает - sp_help, переименование.
А sp_hexadecimal - особенная в любой БД.
...
Рейтинг: 0 / 0
metadata visibility
    #39667166
Eleanor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff,

Кстати, если посмотреть в системную базу Resource, то там есть процедура sp_hexadecimal.
Возможно, поэтому и возникает ошибка "the parameter @objname is ambiguous"
...
Рейтинг: 0 / 0
metadata visibility
    #39667189
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что тут скажешь, MS не зря предупреждали не создавать пользовательские процедуры с названием sp_.
...
Рейтинг: 0 / 0
metadata visibility
    #39667247
Eleanor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff,

Из той же серии конфликта с системными ХП:

Если создать процедуру dbo.sp_db_ebcdic277_2, то при выполнении EXEC или sp_help будет находиться не она, а системная sys.sp_db_ebcdic277_2.
Sp_rename находит обе процедуры и не понимает, какую из них выбрать.
И это несмотря на то, что вы явно указываете схему dbo в имени процедуры.

Если создавать ХП в другой схеме, не в dbo, то конфликта с системными ХП нет.
...
Рейтинг: 0 / 0
metadata visibility
    #39667252
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eleanorfelix_ff,

Кстати, если посмотреть в системную базу Resource, то там есть процедура sp_hexadecimal.
Возможно, поэтому и возникает ошибка "the parameter @objname is ambiguous"

странно подцепил mssqlsystemresource и не нашел там этой процедурки
...
Рейтинг: 0 / 0
metadata visibility
    #39667253
Eleanor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff,

select * from sys.procedures where name = 'sp_hexadecimal' - нечего нет?
В SSMS она в секции Stored Procedures -> System Stored Procedures
...
Рейтинг: 0 / 0
metadata visibility
    #39667261
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eleanor,

имя базы изменено, иначе он не дает подцепить.
...
Рейтинг: 0 / 0
metadata visibility
    #39667272
Eleanor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff,

У меня все эти запросы находят нужную ХП, не находит только object_id('sp_hexadecimal').
Возможно, дело в версии… У меня Resource взят из Microsoft SQL Server 2008 R2. Кто их знает, удалили, например, эту процедуру в новых версия, а где-то в метаданных упоминание sp_hexadecimal осталось.
...
Рейтинг: 0 / 0
metadata visibility
    #39667495
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eleanor,

Мой косяк походу, аттачил на инстанс sqllocaldb там видимо что то с ограничениями редакции.
сейчас примапил resource на полноценный инстанс там действительно есть процедурка в схеме.

вообщем приблизительно тогда картина вырисовывается.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / metadata visibility
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]