我有一个非常奇怪的情况,我试图从网上研究答案,但无济于事。我正在使用 SQL Server 2008 R2。
我创建了一个存储过程, TRUNCATE TABLE
其中包含其他 T-SQL 语句中的语句。
从 SQL Server Management Studio 运行时,存储过程运行时不会出现错误。
从 Windows 窗体应用程序(使用 .NET Framework 4 用 VB.Net 编写)运行时,出现错误
找不到对象 tbl_Test1,因为它不存在或您没有权限
与数据库的连接是在应用程序中正确设置的,更奇怪的是,我还有其他以完全相同的方式创建的存储过程,它们有自己的TRUNCATE TABLE
语句,并且这些过程仍然可以正常运行。
User_Role
对调用应用程序登录的存储过程具有执行权限。
该表tbl_Test1
确实存在。
我已经尝试了几件事,并且这样做,对整个情况变得更加困惑。
如果我在.
Select * from tbl_Test1
之前放了一个TRUNCATE
,那么存储过程就可以工作。因为我稍后会返回一个选择,所以我希望它不存在。所以我重新编码并
select @Count = count(*) from tbl_Test1
在声明之前做了一个TRUNCATE
,这失败了,上面的错误相同,说明tbl_Test1
不存在或没有权限。
我完全不知道为什么会发生这种情况。我还有其他几个存储过程,其中包含截断语句,创建方式与此完全相同,并且在从应用程序调用时工作正常。
任何人都可以帮助或阐明我的问题。
提前谢谢了