【发布时间】:2014-09-09 19:23:40
【问题描述】:
我正在尝试使用存储过程从第二个数据库创建一个数据库视图。如果我在目标数据库上运行它,我可以使用下面的 SQL 创建存储过程:
IF OBJECT_ID ('databasename..v_MyView') IS NOT NULL
DROP VIEW v_MyView
GO
CREATE VIEW v_MyView
AS
select FirstName, LastName, Address
from databasename..t_UserTable
where SalesPersonId = 21563
GO
我希望我可以在该行前加上前缀:
CREATE VIEW v_MyView
与:
CREATE VIEW databasename..v_MyView
然后从同一服务器上第二个数据库上的存储过程中调用它,但这不起作用。
DBViz 返回的错误是:
16:26:28 [CREATE - 0 row(s), 0.000 secs] [Error Code: 166, SQL State: S1000] CREATE VIEW does not allow specifying the database name as a prefix to the object name.
... 1 条语句已执行,0 行受影响,执行/获取时间:0.000/0.000 秒 [0 成功,0 警告,1 错误]
有什么想法或建议吗?
ASE 15.0,用于 MS SQL Server 和 Sybase 的 jTDS Type 4 JDBC 驱动程序,1.2.7
【问题讨论】:
-
更改您在 DB1 中的 SP 以调用 DB2 中的 SP,然后创建视图?
-
问题是它是一个 UAT 数据库,整个数据库被删除并被包括所有 SP 的 PROD 实例覆盖。然后我想将视图添加到 UAT 实例。
-
有趣,我正在运行 ASE 15.5,它不允许我在存储过程中创建视图。
标签: sql stored-procedures views sybase sap-ase