- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
尽管在将变量传递给 sp_executesql 时将变量声明为“游标”类型,但我收到错误“操作数类型冲突:nvarchar 与游标不兼容”。
declare CURSOR_TO_PASS cursor for... --a simple select statement
--cursor opened, values obtained, etc...
declare @item nvarchar(5);
declare @seqno int;
--@item and @seqno populated
declare @sql nvarchar(400) = N'update MYTABLE set Survey' + cast(@seqno as nvarchar(2)) + N' = @itemvalue where current of @sc';
exec sp_executesql @sql, N'@itemvalue nvarchar(5), @sc cursor', @itemvalue = @item, @sc = CURSOR_TO_PASS;
最佳答案
发布此内容后不久我就找到了解决方案。实际上可以传递游标变量。只需要一个中间步骤,您必须将光标分配给“光标变量”,如下所示:http://msdn.microsoft.com/en-us/library/ms190028.aspx “游标可以通过以下两种方法之一与游标变量相关联:”,这两种方法都需要一个初始的、基本的游标变量声明,如“DECLARE @MyVariable CURSOR;”。
所以我将这些行添加到我的代码中:
declare @cursorvariable cursor;
set @cursorvariable = CURSOR_TO_PASS;
@sc = CURSOR_TO_PASS
至
@sc = @cursorvariable
,而且效果很好。
关于tsql - 是否可以将游标变量传递给 sp_executesql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6654581/
系统存储过程,sp_executesql 语言在这里! sp_executesql 执行可以多次重用或动态生成的Transact-SQL语句或批处理。Transact-SQL语句或批处理可以包
我捕获了一个由 Entity Framework 生成的查询,其中一个参数可以在 nvarchar(max) 中存储大量(400,000+ 个字符)的文本信息。 field 。我遇到的问题是,在执行语
我正在使用带参数的查询来创建数据库用户和 SQL Server 登录名。我有下一个程序: PROCEDURE [dbo].[regNewOfficial] @name nvarchar(30), @p
我正在 SQL Server 2005 中编写一个存储过程,在给定的时间点我需要执行另一个存储过程。这个调用是动态的,所以我像往常一样使用了 sp_executesql 命令: DECLARE @DB
尽管在将变量传递给 sp_executesql 时将变量声明为“游标”类型,但我收到错误“操作数类型冲突:nvarchar 与游标不兼容”。 declare CURSOR_TO_PASS cursor
我不明白为什么以下给我错误。我认为这与注释掉的部分有关,但@SQL 是 nvarchar(4000)。 BEGIN sp_executesql N'SELECT ''td''' --sp_ex
以下两个查询返回不同的结果。我知道差异与处理日期的时间部分的方式有关,但为什么会这样? // QUERY ONE select top 3 OrderDate from Orders where Or
我想从查询中获取 ID,但我得到的是 NULL,我的错误在哪里? DECLARE @TblZimz NVARCHAR(256) DECLARE @IdModul INTEGER DECLA
我正在调用一个存储过程并从我的 Windows 应用程序中传入 2 个日期作为参数。它返回所有行而不是我期望的 2 行。 存储过程是: ALTER procedure [dbo].[Get_Entri
在数据库表上运行 sp_executesql 时遇到一些问题。在本例中,我使用 ORM (NHibernate) 生成一个查询一个表的 SQL 查询。该表大约有 700 万条记录,并且索引很高。 当我
我正在调用一个存储过程并从我的 Windows 应用程序中传入 2 个日期作为参数。它返回所有行而不是我期望的 2 行。 存储过程是: ALTER procedure [dbo].[Get_Entri
我正在调用下面的代码。 在 (IDataReader dr = cmd.ExecuteReader()) sql barfs 行上,“CompanyUpdate”附近的语法不正确。 using
Msg 102, Level 15, State 1, Line 3 Incorrect syntax near '+'. 当你尝试执行下面这段代码时,会得到如上这个错误提
是否可以动态地向 sp_ExecuteSql 提供参数列表? 在 sp_ExecuteSql 中,查询和参数定义是字符串。我们可以为这些使用字符串变量,并传入我们想要执行的任何查询和参数定义。但是,在
我需要帮助将我的“用户定义表类型”参数传递给动态 sql sp_executesql。 这是我的示例代码: DECLARE @str as nvarchar(Max) DECLARE @IDLIST
有什么方法可以使用不依赖于它们在商店中定义的顺序的参数调用 sp_executesql 吗?与 exec 相同的查询效果很好,如果您有相同的顺序,它也可以很好地工作,但是必须一个一个地匹配参数很痛苦,
我需要执行一段动态 SQL,然后需要将结果存储到变量中。 我知道我可以使用 sp_executesql 但找不到有关如何执行此操作的明确示例。 最佳答案 如果你有 OUTPUT 参数,你可以这样做 D
我在执行下面的代码时遇到问题,它给出了如下错误: Msg 102, Level 15, State 1, Line 3 Incorrect syntax near '@ST'. 我可以尝试使用动态 S
我正在使用 C# 中的 Entity Framework ,并且遇到了一个问题,我已追踪到生成的 SQL 语句。 存储过程接受表值参数,但这似乎不是问题。 在 SQL Profiler 中,我看到正在
我有一个查询,它在 SQL Server Management Studio 中运行速度非常快,但在 sp_ExecuteSQL 下运行时运行速度非常慢。 这是否与在 sp_ExecuteSQL 下运
我是一名优秀的程序员,十分优秀!