在服务器上进行作业调度时每日定期执行存储过程,该存储过程有删除视图和重新创建视图,代码如下:
DECLARE @sqlstr1 varchar(255)
DECLARE @sqlstr3 varchar(255)
IF EXISTS (SELECT * FROM RawData..sysobjects WHERE id = object_id(N'[dbo].[ViewFundClassCountBaseTable]') AND OBJECTPROPERTY(id,N'IsView') = 1)
BEGIN
SET @sqlstr1 = 'DROP VIEW ViewFundClassCountBaseTable'
EXEC(@sqlstr1)
END
BEGIN
SET @sqlstr1 = 'CREATE VIEW ViewFundClassCountBaseTable AS SELECT * FROM fn_FundClassCountBaseTable()'
EXEC(@sqlstr1)
SET @sqlstr3 = 'GRANT SELECT ON dbo.ViewFundClassCountBaseTable TO DataClient'
EXEC(@sqlstr3)
END DECLARE @sqlstr2 varchar(255)
IF EXISTS (SELECT * FROM RawData..sysobjects WHERE id = object_id(N'[dbo].[ViewFIFundCountBaseTable]') AND OBJECTPROPERTY(id,N'IsView') = 1)
BEGIN
SET @sqlstr2 = 'DROP VIEW ViewFIFundCountBaseTable'
EXEC(@sqlstr2)
END
BEGIN
SET @sqlstr2 = 'CREATE VIEW ViewFIFundCountBaseTable AS SELECT * FROM fn_FIFundCountBaseTable()'
EXEC(@sqlstr2)
END在执行时服务器报错,报错信息如下:
Cannot find the object 'ViewFundClassCountBaseTable', because it does not exist or you do not have permission.
Invalid object name 'ViewFundClassCountBaseTable'.
Invalid object name 'ViewFundClassCountBaseTableForRate'.我在本地的查询分析器里是可以执行这个存储过程的,是因为服务器没有权限吗?
DECLARE @sqlstr1 varchar(255)
DECLARE @sqlstr3 varchar(255)
IF EXISTS (SELECT * FROM RawData..sysobjects WHERE id = object_id(N'[dbo].[ViewFundClassCountBaseTable]') AND OBJECTPROPERTY(id,N'IsView') = 1)
BEGIN
SET @sqlstr1 = 'DROP VIEW ViewFundClassCountBaseTable'
EXEC(@sqlstr1)
END
BEGIN
SET @sqlstr1 = 'CREATE VIEW ViewFundClassCountBaseTable AS SELECT * FROM fn_FundClassCountBaseTable()'
EXEC(@sqlstr1)
SET @sqlstr3 = 'GRANT SELECT ON dbo.ViewFundClassCountBaseTable TO DataClient'
EXEC(@sqlstr3)
END DECLARE @sqlstr2 varchar(255)
IF EXISTS (SELECT * FROM RawData..sysobjects WHERE id = object_id(N'[dbo].[ViewFIFundCountBaseTable]') AND OBJECTPROPERTY(id,N'IsView') = 1)
BEGIN
SET @sqlstr2 = 'DROP VIEW ViewFIFundCountBaseTable'
EXEC(@sqlstr2)
END
BEGIN
SET @sqlstr2 = 'CREATE VIEW ViewFIFundCountBaseTable AS SELECT * FROM fn_FIFundCountBaseTable()'
EXEC(@sqlstr2)
END在执行时服务器报错,报错信息如下:
Cannot find the object 'ViewFundClassCountBaseTable', because it does not exist or you do not have permission.
Invalid object name 'ViewFundClassCountBaseTable'.
Invalid object name 'ViewFundClassCountBaseTableForRate'.我在本地的查询分析器里是可以执行这个存储过程的,是因为服务器没有权限吗?
服务器的账户名是什么呢? sys 吗?
期盼高手指点迷津!
EXEC(@sqlstr1) 确定这步完成了?