问题标签 [table-valued-parameters]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server-2008 - 使用“非静态”搜索词进行全文搜索(来自连接表变量)
希望(并且实际上认为:))有人已经遇到了类似的问题并解决了它..
短期内的基本问题..由于使用“wordsearch”功能和相关数据将在不久的将来迅速增长,我们(在这种情况下是指我)需要改为使用全文搜索..
所以它现在所有设置..但我无法使查询语法工作(下面的简化版本)
where 子句是一个更大的子句的一部分.. 只是猜测我会认为“包含”子句需要一种“静态”搜索词输入,并且不能处理与行相关的值..
在 msdn 和这里都找不到任何东西..
主要问题之一是'base_questions'不是固定的并且可能会改变,并且搜索条件(哪个问题要搜索什么术语)是完全动态的..所以没有switch-case或类似的东西..我认为动态 sql 也不是一个真正的选择(出于不同的原因,但这将远远超出这个问题的范围 :) ..)
但是,对该数据库的所有搜索都是通过带有标量和表值参数(如 @searchValues )的存储过程完成的。如果可能的话,我想保持这种状态
所以任何提示,提示和建议都值得赞赏
和简化数据库结构的仅供参考和完整性的简短版本:
答案( id bigint (PK), item_id uniqueidentifier (FK), base_question_id uniqueidentifier (FK), value nvarchar(max))
base_question ( id uniqueidentifier (PK), code varchar(900), question_type_id (FK), .. descriptive content .. )
item ( id uniqueidentifier (PK), .. 描述性内容 .. )
.. 甚至可以更改数据库结构以使搜索具有一定的性能并再次工作;)..(现在我们有大约 120k item_ids 和大约 2.5 个 mio 答案,但这很容易增加 10 倍甚至更多)
c# - 当 SQL Server 中用户定义的表类型将所有列的默认值设置为 null 时,如何将具有较少列的 DataTable 传递给存储过程
我有一个存储过程,它接受用户定义的表类型,并且用户定义数据类型中所有列的默认值设置为 null。现在我将一个包含较少列的数据表从 c# 代码传递给存储过程,期望剩余列的值将设置为空。
但我收到此错误:尝试传递具有 21 列的表值参数,其中相应的用户定义表类型需要 77 列。这是代码
sql-server-2005 - SQL Server 表值函数参数
我得到了下表值函数(在 SQL Server 2005 中)。运行--1的时候出现编译错误,但是--3是ok的,--2是用来生成--3使用的参数,应该和--1一样。但为什么 --1 得到错误?
sql - 需要帮助优化 TSQL 表值函数
这是功能:
简而言之,这就是它的作用:
首先,我们找到第一个收到或移动的物品,并使用日期作为开始日期。然后我们找到该商品的总销售额,并开始从销售额中减去收货金额。剩余部分被视为老化(未售出),并在下个月进行评估。然后我们移至下个月并重复该过程,直到我们达到负数或 0。如果我们达到负数,则意味着我们已经达到了一个月,我们订购的数量超过了迄今为止的销售量,并且该数量被视为已老化(不出售)。如果还有更多月份需要评估,则默认情况下,任何进一步收到的金额都将被视为已过期,因为它显然未售出。
以下是用于评估的表中的示例数据:
这是我对上述数据的函数的结果:
这告诉我,我们卖掉了四月份收到的所有东西。5 月再次订购,卖出了一些,但仍有剩余库存(老化)。然后,在 7 月份没有售出库存的情况下,我们再次订购了更多库存,因此该库存被自动视为已老化。
这个函数的目的是停止上面发生的事情。这是订购具有老化(未售出)库存的物品。它还用于评估一个部门的老化程度,以及我们是否应该考虑开始销售以摆脱老化的物品。
问题是我们要评估的项目不少于 40,000 个。此功能适用于单个项目,但 100 个项目需要 30 秒。我希望有人能长期来看我的功能并意识到我正在以完全错误的方式进行操作。如果我可以完成内联计算并结转剩余部分,那就太好了。
我基本上需要简化的伪代码:
我希望这次我已经彻底解释了自己。抱歉这么久。我真的很想涵盖我在上一篇文章中遇到的所有问题。
c# - 带有 byte[] 字段作为存储过程参数的 DataTable
我一直在重用这种使用 DataTable 作为存储过程参数的方法,并且效果很好。这是简化的工作代码:
当我要添加的字段是二进制类型时,就会出现问题。IE:
顺便说一下数据库中对应的列varbinary(MAX)
。当我尝试运行它时,我收到此错误:
不允许从数据类型 nvarchar(max) 到 varbinary(max) 的隐式转换。使用 CONVERT 函数运行此查询。
如何修改我必须完成的工作?
sql - 在表值参数上使用带有“LIKE”的子查询进行存在性检查
我正在从excel导入数据库。我正在传递一个带有一堆值的表值参数,其中一个是外键。问题是,在数据库中,键值nvarchar
总是前面有 2 或 3 个零,但是发送 excel 文件的人没有正确格式化该列,并且那些前导零被切断。
在此过程中我需要做的第一件事是检查所有这些值是否存在于父表中LIKE
(因为缺少前导零)。如果父表中不存在任何值,则事务不会继续。
为此,我需要一些有关 MS SQL 语法的帮助。
sql-server - 传递表值参数时如何组织或避免临时用户定义表类型
正如这里所讨论的:将List<> 传递给 SQL 存储过程和许多其他地方,将表作为参数传递的一种方法是使用 SqlParameter。
这样做的问题是它需要在 TypeName 属性中指定用户定义的表类型。
我需要从 Excel 文件加载数据并将其作为参数传递给 SQL 语句,该语句会将这些数据与其他数据库表连接起来以获得结果。
为此,我需要为每个可能的 Excel 文件变体创建用户定义的表格类型。我不想用那些仅用于从每个 Excel 文件传递数据的类型污染 SQL 类型。我如何做到这一点?
您可能会问我如何加入我不知道类型的东西 - 答案是 - 我知道某些字段的名称和类型,但不是全部。此外,如果我想使用 select * 返回连接的数据,它将适用于任何字段列表,而无需我将所有字段都硬编码在类型中。
我不能使用 OPENROWSET 直接从 SQL 加入这个文件,因为我有 64 位 SQL Server,它不起作用给我一个奇怪的错误。
SQL Server中有临时表的概念,但是没有临时类型的概念,如何模拟临时类型或者在传表时避免使用它?
我可以将数据作为 XML 传递,但如果数据大小足够大且数据大小限制为 2Gb,则效率似乎较低。
组织它的一种方法是创建类型,然后执行语句,然后在之后删除类型或使用 TRY..CATCH 并在 catch 中删除类型。
另一个是制作特殊的模式,在该模式中生成唯一的类型名称,并使用垃圾收集 SQL 作业不时清理它。它可以与第一种方法结合使用,仅用于清理剩菜。
还有其他建议吗?
sql - t-sql 中带有子查询的 Where 子句是否查询每一行的数据?
我在 t-sql 中编写了一个查询,该查询在子查询中使用了一个函数,并遇到了两个问题。想象一个广告表如下:
一个选项表如下:
以及这两者之间的垃圾表(AdvertisementOptionLink),带有两个外键列:
现在我想在用户选择选项时查询广告。我写了一个这样的查询:
现在 UDF_GetAdvertisements 是一个表值函数,它返回具有特定选项的广告列表。
有两个问题:
- 这个 UDF_GetAdvertisements 函数是否查询每一行的所有数据?我的意思是,如果我的表中有 2000 个广告,它会查询所有这些广告并返回所有广告 ID?我最好将函数返回值保存在变量中吗?
2.在这个数据库中有一些广告没有任何选项,如果用户不选择任何选项,我如何返回所有广告?
我在 t-sql 中使用表值参数通过存储过程传递选定的选项 ID。使用了这个页面的一些帮助:http: //www.sommarskog.se/arrays-in-sql-2008.html
entity-framework - EntityFrameWork 和 TableValued 参数
我正在尝试从使用表值参数的EntityFramework调用存储过程。
但是当我尝试进行函数导入时,我不断收到一条警告消息,说 -
函数“InsertPerson”在参数索引 0 处有一个参数“InsertPerson_TVP”,该参数具有目标 .NET Framework 版本当前不支持的数据类型“表类型”。该功能被排除在外。
我在这里进行了初步搜索,发现很少有帖子说在 EntityFrameWork 中可能有一些变通方法,很少有人说当前版本不支持它。
有谁知道解决此问题的更好方法或解决方案?
visual-studio-2012 - sql71501 sql 参数对内置类型的引用未解析
从 VS2012 我创建了一个数据库项目并创建了广告自定义类型
现在,当我使用这种类型编写存储过程时,出现编译错误
sql71501 sql 参数对内置类型的引用未解析
程序
如何处理?我们可以在 Visual Studio 数据库项目上创建自定义类型吗