在不同的DB上下文中使用用户数据类型和proc

时间:2015-02-05 11:34:01

标签: sql-server table-valued-parameters custom-data-type

我有2个数据库" Alfha"和#34; Betha"。

在DB" Betha"中创建了proc_test。

它使用在db" Betha"中创建的用户创建的类型type_test的表值参数。

我不想要,而且我无法在db" Alpha"。

我的所有代码都必须执行#34; Alfha"分贝。

从理论上讲,我可以使用betha"在我的代码开头,但我不能在开头做(我的代码由SP执行,在开头添加变量声明)

--use Betha --this works
declare @sql varchar(max)
use Betha --this doesn't work
declare @table_var type_test
execute proc_test @table_var
use Alpha

我使用的是SQL Server 2008 R2。

如何编译代码?为什么"使用数据"声明后,编译器是否存在?

2 个答案:

答案 0 :(得分:0)

请参阅https://msdn.microsoft.com/en-us/library/ms178069.aspx

无法从数据库上下文中调用数据类型。

“使用”中断,因为它是批处理分隔符。

答案 1 :(得分:0)

我有一个解决方法 它将是:

--use Betha --this works
declare @sql varchar(max)
use Betha --this doesn't work
set @sql= 'use Betha
declare @table_var type_test
execute proc_test @table_var'
execute (@sql)
use Alpha

我对这种解决方法不太满意,但它确实有效。

问题是我的所有代码都必须在@sql

还有其他想法吗?