相关疑难解决方法(0)

如何在T-SQL中的调试时查看表变量的值?

我们可以在调试时间内在SQL Server Management Studio(SSMS)中看到表值变量中的值(行和单元格)吗?如果有,怎么样?

在此输入图像描述

sql debugging ssms table-variable

180
推荐指数
5
解决办法
10万
查看次数

如何在MS SQL Server 2005中确定表值变量的内部名称

可以使用确定#t1等临时表的名称

select @TableName = [Name]
from tempdb.sys.tables 
where [Object_ID] = object_id('tempDB.dbo.#t1')
Run Code Online (Sandbox Code Playgroud)

如何找到表值变量的名称,即声明的变量名称

declare @t2 as table (a int)
Run Code Online (Sandbox Code Playgroud)

目的是能够使用类似的东西获取关于表的元信息

select @Headers = dbo.Concatenate('[' + c.[Name] + ']')  
from  sys.all_columns c
    inner join sys.tables t
        on c.object_id = t.object_id
where t.name = @TableName
Run Code Online (Sandbox Code Playgroud)

虽然对于临时表,你必须查看tempdb.sys.tables而不是sys.tables.你在哪里寻找表值变量?


我现在意识到我不能做我想做的事情,这是写一个通用函数来将表值变量格式化为html表.对于初学者,在sql server 2005中,您无法传递表值参数:

http://www.sqlteam.com/article/sql-server-2008-table-valued-parameters

而且,在sql server 2008中,参数必须是强类型的,因此您将始终知道列的数量和类型.

t-sql

4
推荐指数
2
解决办法
1398
查看次数

从Java调用SQL Server中的表变量的问题

我有一个SQL语句时,在MS Server Management Studio中执行其工作,并从C#提交的时候,但是从Java提交时不工作,工作(1.6,使用sqljdbc4.jar).

基本问题似乎是选择一个表变量.继第一条评论之后,我完全用简单的例子重写了这个问题,以显示哪些有效,哪些无效.

以下查询:

DECLARE @IsLoadRaw as INT = ? 
DECLARE @PrimaryID as varchar(1000) = ?
--Declare temporary table to hold message IDs and fill according to Primary ID.
DECLARE @MessageIDs TABLE ( MessageID BIGINT )
SELECT MessageID FROM Messages WHERE PrimaryID = @PrimaryID
Run Code Online (Sandbox Code Playgroud)

在SQL Management Studio和从Java提交时都可以使用.在这两种情况下,它都返回一个带有两个MessageID的结果集(对于我用于测试的给定PrimaryID是正确的).

以下查询:

DECLARE @IsLoadRaw as INT = ? 
DECLARE @PrimaryID as varchar(1000) = ?
--Declare temporary table to hold message IDs and fill according to Primary ID.
DECLARE @MessageIDs TABLE ( MessageID …
Run Code Online (Sandbox Code Playgroud)

java t-sql jdbc

4
推荐指数
1
解决办法
1738
查看次数

标签 统计

t-sql ×2

debugging ×1

java ×1

jdbc ×1

sql ×1

ssms ×1

table-variable ×1