Hot*_*tud 4 sql database sql-server stored-procedures sql-types
我是SQL Server 2008中的表值参数的新手.我试图用查询创建用户定义的表
USE [DB_user]
GO
CREATE TYPE [dbo].[ApproveAddsIds] AS TABLE(
[Ids] [bigint] NULL
)
GO
Run Code Online (Sandbox Code Playgroud)
当我尝试在存储过程中使用表类型时
USE [DB_user]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [dbo].[GetTopTopic]
@dt [dbo].[ApproveAddsIds] READONLY
AS
BEGIN
END
Run Code Online (Sandbox Code Playgroud)
我有两个错误_
@dt具有无效的数据类型
参数@dt不能被声明为只读,因为它不是表值参数.
所以我试图弄清楚这背后的原因,因为第一个查询成功执行我认为这是因为权限,所以尝试
GRANT EXEC ON TYPE::[schema].[typename] TO [User]
GO
Run Code Online (Sandbox Code Playgroud)
但是错误仍在继续,不知道这有什么不对.
奇怪的事情,我注意到,现在,当我把,经过@dt [dbo].[ApproveAddsIds] READONLY上述错误删除,现在的错误是在AS说期待的变量.当我为变量编写代码时,旧错误仍在继续.我认为这可能会有所帮助.
Any*_*ope 16
我发生了这个确切的问题.我只是确保在SQL Server中保存了所需的所有内容并重新启动了SQL Server Management Studio.
重新启动后,错误不再出现.我正在使用SQL Server 2012但我不明白为什么这不应该也适用于2008.
ing*_*bic 11
我知道我迟到了,但实际上您看到的是 SSMS Intellisense 的问题,您可以轻松解决它,而无需重新启动整个 SSMS。只需按 CTRL-SHIFT-R。稍等片刻,问题就解决了:)
小智 0
相同的代码也适用于我。BEGIN但是和之间没有任何语句END。尝试添加一些这样的语句
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [dbo].[GetTopTopic](
@dt [dbo].[ApproveAddsIds] READONLY
)
AS
BEGIN
--Write some statements here
print 'hi'
END
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14830 次 |
| 最近记录: |