需要将存储过程移动到系统存储过程文件夹中

Nea*_*alR 0 sql sql-server stored-procedures

当我创建我的存储过程时,我设法将它放在存储过程文件夹中,但不在系统存储过程文件夹内(系统SP文件夹存在于存储过程文件夹中).如何将其向下移动一级到系统存储过程文件夹?

编辑:阅读下面的答案后,我认为问题是我告诉我的C#程序访问存储过程.我有这行代码抛出异常,告诉我它无法找到它:

SqlCommand cmd = new SqlCommand("<database_name>.dbo.<stored_procedure_name>.sql", conn);
Run Code Online (Sandbox Code Playgroud)

如果有人可以提供任何有关如何正确调用存储过程的帮助,将不胜感激.谢谢!

JNK*_*JNK 10

你没有,或者至少不应该.

这适用于system存储过程,这些存储过程内置于RDBMS中并用于system函数,例如重命名对象或检查服务器上的用户.

不要将它们视为文件系统中的文件夹 - 它们只是根据现有的元数据(Stored procedure或View?System对象或User对象?)来组织对象.

你可以想象它被标记为系统对象,但这只是一个可怕的想法.

为什么要混淆你的程序?如果你正在创建它,它显然是一个用户程序而不是系统程序.

  • @NealR您的程序名称中不需要`.sql` - 这是一个文件扩展名,而且它使`SQLCommand`混乱,因为它在名称中添加了一个额外的部分 (3认同)

Bri*_*dge 6

我真的不确定你为什么需要这样做,但你可以:

exec sp_ms_marksystemobject myprocname
Run Code Online (Sandbox Code Playgroud)

它没有文档 - 因此,如果您尝试使用它,我将不会获得任何支持,并且可能会从SQL Server的未来版本中删除它.

  • 同样值得注意的是,你无法"撤消"这个,如果你以后改变主意,你需要删除并重新创建程序. (2认同)