我创建了个查看某个数据库里面所有用户表的存储过程,但是创建好后提示找不到此存储过程,我还是在MyDB下调用,请看代码:
- SQL code
USE MyDBGOCREATE PROCEDURE spCKtablename@dbname VARCHAR(200)ASDECLARE @strsql VARCHAR(MAX)BEGINSET @[email protected]+'GO'+'SELECT name FROM sys.sysobjects WHERE xtype IN'+'('+'U'+')'+ 'AND type='+'U'+ 'ORDER BY name' EXEC(@strsql) END
高手麻烦解决下。
------解决方案--------------------
重新刷新下
或者
select * from sys.sysobjects where name='' and type='p'
------解决方案--------------------
USE MyDB
GO
CREATE PROCEDURE [email protected] VARCHAR(200)
AS
DECLARE @strsql VARCHAR(MAX)
BEGIN
SET @[email protected]+'GO'+'SELECT name FROM sys.sysobjects WHERE xtype IN'+'('+'U'+')'+
'AND type='+'U'+ 'ORDER BY name'
EXEC(@strsql)
END
如果加了个杠可能就在MASTER了,如果没加,你自己检查有没有在MYDB下有这个过程
------解决方案--------------------
不知道mssql能不能建立在user下面的存储过程。
------解决方案--------------------
建议重启SSMS
------解决方案--------------------
- SQL code
alter PROCEDURE spCKtablename@dbname VARCHAR(200)ASDECLARE @strsql VARCHAR(MAX)BEGINSET @strsql='USE [email protected]+' SELECT name FROM sys.sysobjects WHERE xtype =''X''AND type=''P'' ORDER BY name' EXEC(@strsql) END
------解决方案--------------------
查看你数据库下所有存储过程,看看有没有你建立的
- SQL code
select * from databaseName where OBJECTPROPERTY(id, N'IsProcedure') = 1