有没有办法运行查询,然后让SQL Server管理工作室或sqlcmd或其他东西只显示收到的每列的数据类型和大小.
似乎必须存在此信息才能在服务器和客户端之间传输数据.如果可以显示它对我非常有帮助.
一点背景: 我问的原因是因为我必须与无数遗留存储过程接口,每个存储过程的代码范围为50到5000多行.我不想尝试跟随临时表中的神秘逻辑流进入其他过程,进入字符串连接的eval语句等等.我希望不了解实施情况,只是在工作时会发生什么.不幸的是,遵循逻辑流程似乎是唯一的方法来确定究竟是什么被返回而不试图推断管理工作室工作室的数据字符串表示的实际类型或例如.net中的本机类型.
澄清:我不是在询问如何告诉表格的类型或类似的静态.我很确定像sp_help这样的东西对我没用.我问如何告诉我的SQL服务器类型(即varchar(25),int ...)是什么.此外,无法更改sprocs的实现,因此请在您的解决方案中考虑这一点.我真的希望有一个我错过了某个地方的命令.非常感谢所有人.
更新 我想我真正问的是当结果集来自使用临时表的查询时如何获取结果集的模式.我理解这是不可能的,但是对于这个结论没有多大意义,因为数据毕竟是传输的.以下是可能导致问题的存储过程示例.
CREATE PROCEDURE [dbo].[IReturnATempTable]
AS
Create table #TempTable
(
MyMysteryColumn char(50)
)
INSERT #TempTable (
MyMysteryColumn
) VALUES (
'Do you know me?' )
select TOP 50 * FROM #TempTable
Run Code Online (Sandbox Code Playgroud) 我正在努力为同事做一些Oracle工作,并陷入困境.在尝试编写脚本以将列修改为可为空时,我遇到了可爱的ORA-01451错误:
ORA-01451: column to be modified to NULL cannot be modified to NULL
Run Code Online (Sandbox Code Playgroud)
发生这种情况是因为列已经是NULL.我们有几个需要更新的数据库,所以在我错误的假设中,我认为将其设置为NULL应该全面工作以确保每个人都是最新的,无论他们是否已将此列手动设置为可为空.但是,对于已经将列作为可空的一些人来说,这显然会导致错误.
如何检查列是否已经可以为空以避免错误?能够实现这个想法的东西:
IF( MyTable.MyColumn IS NOT NULLABLE)
ALTER TABLE MyTable MODIFY(MyColumn NULL);
Run Code Online (Sandbox Code Playgroud) 我对OO设计过程很新,所以请耐心等待....
我有两个实体,我需要建模为类,称为父和子(它足够接近实际的问题域).一位家长将有一个或多个孩子 - 在这个申请中,我对没有孩子的父母没有兴趣.
我的大脑出去吃午饭的地方是我需要能够找到另一个.在我的数据库中,我可以使用正常的外键关系实现它,并且SQL的基于集合的特性使得查找给定父项的所有子项或给定子项的父项变得容易.但作为对象......?
我认为家长应携带儿童的集合(列表,无论如何).我还认为每个孩子都应该提及其父母.然而,参考文献的循环性质让我头疼.
我是:
这几乎肯定会在VB.NET中实现,但我还是可以通过切割代码来实现.
8个答案后编辑:
谢谢大家.很难选择一个接受的答案.
澄清答案中提出质疑的几件事:
再次感谢.
您使用什么约定来评论getter和setter?这是我一直想知道的事情,例如:
/**
* (1a) what do you put here?
* @param salary (1b) what do you put here?
*/
public void setSalary(float salary);
/*
* (2a) what do you put here?
* @return (2b)
*/
public float getSalary();
Run Code Online (Sandbox Code Playgroud)
我总是发现我为1a/b和2a/b编写完全相同的东西,例如1a)设置雇员的工资,1b)雇员的工资.这似乎是多余的.现在我可以看到更复杂的东西,你可以在(a)部分写更多内容,给出上下文,但对于大多数的getter/setter,那里的措辞几乎完全相同.
我只是好奇,如果对于简单的getter/setter,只需填写(a)部分或(b)部分即可.
你怎么看?
我想编写一个单独测试我的Cocoa应用程序的GUI部分.
在教科书单元测试中,有一个测试框架和测试用例调用被测单元.该单元下面的所有代码都被模拟了.因此,输入和输出都受到控制和监控; 仅测试被测单元中的代码.
我想做同样的事情,被测单元是我的GUI:
1)设置某种框架,我可以编写代码来操作和检查GUI控件.
2)将我的GUI控件连接到我的实际代码的模拟,而不是实际的实例.
3)运行测试,操作控件然后检查模拟对象以查看是否使用正确的参数调用了正确的方法,并检查GUI以查看来自模拟对象的响应是否导致窗口小部件中的正确更改.
有人这样做吗?如果是这样,怎么样?有关如何做到这一点的任何想法?
谢谢,
拍
(编辑)为了给出一个非常具体的例子,我想:
1)编写一个测试用例,选择菜单项'MyMenu' - >'MyItem'.在这个测试用例中,我想检查一下方法[AppDelegate doMyItem]是否被精确调用一次,并且AppDelegate中没有其他方法被调用.
2)生成AppDelegate的模拟对象.(我知道如何做到这一点)
3)不知何故(在这里handwaving)链接我的应用程序,以便AppDelegate的模拟实例链接而不是真实的.
4)运行测试.看它失败因为1)我还没有创建MyMenu.2)我还没有创建MyItem.3)我没有完成将MyItem连接到[AppDelegate doMyItem]的IB工作,或4)因为我还没有编写'doMyItem'方法.
5)修正上述四个问题(如果那天我感觉真的很迂腐).
6)再次运行测试并观察它是否成功.
这会使问题清楚吗?
给定一个X客户端窗口ID,有没有办法从命令行提升该窗口?
$ xlsclients -a
Window 0x3000001:
Machine: ohm
Name: Terminal
Icon Name: foo
Command: foo
Instance/Class: foo/bar
$ xraise -id 0x3000001 <-- this is what I would like to do
Run Code Online (Sandbox Code Playgroud) 我需要使用Google App Engine进行全文搜索.我找到了项目Whoosh并且它工作得非常好,只要我使用App Engine开发环境......当我将我的应用程序上传到App Engine时,我得到以下TraceBack.对于我的测试,我使用的是此项目中提供的示例应用程序.我知道我做错了什么?
<type 'exceptions.ImportError'>: cannot import name loads
Traceback (most recent call last):
File "/base/data/home/apps/myapp/1.334374478538362709/hello.py", line 6, in <module>
from whoosh import store
File "/base/data/home/apps/myapp/1.334374478538362709/whoosh/__init__.py", line 17, in <module>
from whoosh.index import open_dir, create_in
File "/base/data/home/apps/myapp/1.334374478538362709/whoosh/index.py", line 31, in <module>
from whoosh import fields, store
File "/base/data/home/apps/myapp/1.334374478538362709/whoosh/store.py", line 27, in <module>
from whoosh import tables
File "/base/data/home/apps/myapp/1.334374478538362709/whoosh/tables.py", line 43, in <module>
from marshal import loads
Run Code Online (Sandbox Code Playgroud)
这是我在Python文件中的导入.
# Whoosh ----------------------------------------------------------------------
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'utils')))
from whoosh.fields import …
Run Code Online (Sandbox Code Playgroud) 我会试着稍微破解MediaWiki的代码,但我发现如果我能得到一个独立的解析器就没有必要了.
谁能帮我这个?
谢谢.
给定一个X客户端窗口ID,有没有办法移动该窗口或从命令行更改其几何?
$ xlsclients -a
Window 0x3000001:
Machine: ohm
Name: Terminal
Icon Name: foo
Command: foo
Instance/Class: foo/bar
$ xmovewindow -id 0x3000001 --geometry +100+200 <-- this is what I would like to do
Run Code Online (Sandbox Code Playgroud) 我有一个Oracle表,其数据如下所示:
ID BATCH STATUS
1 1 0
2 1 0
3 1 1
4 2 0
Run Code Online (Sandbox Code Playgroud)
也就是说,ID是主键,每个"批处理"将有多行,每行在STATUS列中都有一个状态代码.还有很多其他专栏,但这些是重要的专栏.
我需要编写一个查询来汇总每个批次的状态代码 ; 在STATUS列中有三个可能的值,0,1和2,我希望输出看起来像这样:
BATCH STATUS0 STATUS1 STATUS2
1 2 1 0
2 1 0 0
Run Code Online (Sandbox Code Playgroud)
这些数字将是重要的; 对于批次1,有
对于批次2,有
有没有办法在一个查询中执行此操作,而无需为每个状态代码重写查询?即我可以轻松编写这样的查询,并运行三次:
SELECT batch, COUNT(status)
FROM table
WHERE status = 0
GROUP BY batch
Run Code Online (Sandbox Code Playgroud)
我可以运行它,然后再次运行status = 1,再次运行status = 2,但我希望在一个查询中执行它.
如果它有所不同,除了STATUS列之外还有另一列我可能想要以相同的方式进行汇总 - …