0

我正在创建一个将从一个数据库调用但需要访问其他数据库中的表的存储过程。我们为每个客户提供不同的数据库。我正在尝试根据参数动态创建同义词:

DECLARE @SQL varchar(150)
SET @SQL = 'CREATE SYNONYM synATClaimMatched FOR ' + ... <params> ...
EXEC @SQL

但这会导致以下错误:

消息 2812,级别 16,状态 62,第 3 行
找不到存储过程 ''。”。

有谁知道我为什么会收到这个错误以及如何解决它?

4

1 回答 1

0

您的问题实际上与同义词或存储过程无关,只是动态 SQL 的语法无效。

利用:

EXEC sp_executesql @sql;

-- or

EXEC(@sql);

虽然我更喜欢第一个。原因如下:

于 2013-01-18T20:18:01.623 回答