我需要一种智能方法,以一种可以在CREATE TABLE语句中使用的方式从INFORMATION_SCHEMA.COLUMNS中获取数据类型.问题是需要理解的"额外"字段,例如NUMERIC _PRECISION和NUMERIC _SCALE.
显然,我可以忽略INTEGER的列(精度为10,比例为0),但还有其他类型我会感兴趣,例如NUMERIC.因此,如果没有编写大量代码来解析表,那么有关如何从列定义中获取某种字段速记的任何想法?
我希望能得到类似的东西:int,datetime,money,numeric**(10,2)**
我将在SQL Server中的nvarchar(MAX)字段中存储故事,但我知道故事会比MAX允许的更长,所以我应该采取什么方法?我应该将故事分成多行,还是应该跳过使用数据库并使用文本文件?
例如,我有两个表(临时表).其中一个只包含ID,另一个包含真实信息.它们具有完全相同的行号.
#Table1
ID
14
15
16
#Table2
CarModel Year
Ford 1996
Ferrari 2005
Toyota 2010
Run Code Online (Sandbox Code Playgroud)
如何将这两个表合并为一个(没有任何条件,只有结果表有3列,无论以什么顺序)?我需要它来插入真实表的结果
Cars
ID CarModel Year
Run Code Online (Sandbox Code Playgroud)
并且此表不使用标识.有一种获取ID的方法可以插入.我无法改变它.
因此,我需要一个像下列其中一个的表(排序并不重要):
#Table3
ID CarModel Year
14 Ford 1996
15 Ferrari 2005
16 Toyota 2010
Run Code Online (Sandbox Code Playgroud)
要么
#Table3
ID CarModel Year
16 Ford 1996
14 Toyota 2010
15 Ferrari 2005
Run Code Online (Sandbox Code Playgroud)
PS我理解如何使用CTE和row_number(),但我认为有更简单的方法来完成这项任务.并且可能此代码将用于MS SQL Server 2000,因此我很乐意查看其他解决方案的变体.
我有两个临时表#a和#b都填充了整数值.假设它们都包含10行,值为1-10.
我想创建一个第三个临时表#c,其中包含a和b的所有可能组合.所以它总共有100行(1,1),(1,2)......(10,10).我将如何在SQL中执行此操作.我正在使用的实现是SQL Server 2012.
我有一个字符串:
@string='TEST RESULTS\TEST 1\RESULT 1
除数字外,字符串/文本保持不变
在以下查询中使用:
SET @sql = "SELECT *
FROM TABLE
WHERE test = (expression FOR CASE 1 resulting IN INT 1)
AND result = (expression FOR CASE 2 resulting IN INT 1)"
Run Code Online (Sandbox Code Playgroud) 我有一个拥有10个属性的客户实体.
测试表中的3个属性是CustomerId,Label,Text.
当我查询这3个属性时,我得到3个这样的数据集:
CustomerId | Label | Text
1005 | blubb | What a day
1006 | hello | Sun is shining
0007 | |
Run Code Online (Sandbox Code Playgroud)
当我保存它们时,我必须在测试台上调用我的存储过程3次
在我的SP中,我检查具有特定customerId AND Label的数据集是否已经存在,然后我执行UPDATE,否则执行INSERT.
如何使用所有CommandText,CommandType,ExecuteNonQuery等东西调用存储过程3次?
如何使用SQL Sever 2005在Excel文件中获取工作表名称?
请注意:
谢谢.
在SSMS>服务器属性>安全性页面中,我可以将“登录审核”查看/更改为“无,仅失败,仅成功...”,是否可以使用TSQL / system catalog / view /获取属性值DMV?我想将其合并到脚本中以生成报告。
谢谢
我试图在C#datetime和SQL datetime之间进行相等比较,由于存储这些值的精度,它似乎失败了.
所以说我有一个非常简单的SQL表,包含以下字段:
ID (PK, int, not null) - identity
Title (text, null)
UpdateTime (datetime, not null)
Run Code Online (Sandbox Code Playgroud)
我通过Entity框架创建一个类对象,将其UpdateTime设置为DateTime.Now,如下所示:
DateTime now = DateTime.Now;
Title.UpdateTime = now;
Run Code Online (Sandbox Code Playgroud)
当我将新对象插入表格时,我发现所有值都显示正确存储.现在我想要为我的对象创建的ID.
这是事情变得困难的地方.我尝试通过LINQ拉回ID:
Title.ID = context.DBTitles.Where(x=>x.UpdateTime == now).FirstOrDefault().ID;
Run Code Online (Sandbox Code Playgroud)
这会引发异常,因为查询返回null,尽管我插入的'now'应该与插入到我的表中的'now'相同.
所以我的问题是:我如何确保我的C#datetime等同于SQL中存储的日期时间?获取我的身份证的最佳方法是什么?
我正在审查我继承的一些代码,我找到了这样的一行:
And isnull(IH.CustomerItemNumber, '') <> ''
Run Code Online (Sandbox Code Playgroud)
我的前任中的哪一个似乎在大量的where子句或join子句中使用过.在我看来,这是一个不必要的函数调用,因此性能损失,因为NULL永远不会等于空字符串'',对吧?
具体来说,我在特定查询中从连接子句中取出了这个,并且性能显着提高(从46-49秒到1-3之间).
替换为 AND IH.CustomerItemNumber <> ''
我的评估是否正确?这是多余的,缓慢的,可以删除?在什么情况下这段代码可能有益?
编辑:那么,NULL可以等于空字符串吗?