Tag: sql server

你如何有效地build模数据库中的inheritance?

在数据库中build模inheritance的最佳实践是什么? 什么是权衡(例如可查询性)? (我最感兴趣的是SQL Server和.NET,但我也想了解其他平台如何解决这个问题。)

从存储过程的结果集中select列

我有一个存储过程,返回80列和300行。 我想写一个select,获得这些列中的2。 就像是 SELECT col1, col2 FROM EXEC MyStoredProc 'param1', 'param2' 当我使用上面的语法,我得到的错误: “无效的列名称”。 我知道最简单的解决scheme将是更改存储过程,但我没有写,我不能改变它。 有什么办法可以做我想要的吗? 我可以做一个临时表来放置结果,但是因为有80列,所以我需要制作一个80列的临时表才能得到2列。 我想避免跟踪所有返回的列。 我试图使用WITH SprocResults AS ….如马克build议,但我得到了2个错误 关键字“EXEC”附近的语法不正确。 )附近语法不正确。 我试图声明一个表variables,我得到了以下错误 插入错误:提供的值的列名或数量与表定义不匹配 如果我尝试 SELECT * FROM EXEC MyStoredProc 'param1', 'param2' 我得到的错误: 关键字'exec'附近的语法不正确。

如何使用TSQL获取数据库中所有表的列表?

在SQL Server的特定数据库中获取所有表的名称的最佳方法是什么?

为SQL Server表自动生成INSERT语句的最佳方法是什么?

我们正在编写一个新的应用程序,而在testing的时候,我们将需要大量的虚拟数据。 我已经使用MS Access将这些数据添加到相关的表中。 每隔一段时间,我们都要“刷新”相关表格,这意味着将其全部删除,重新创build它们,并运行已保存的MS Access追加查询。 第一部分(删除和重新创build)是一个简单的SQL脚本,但最后一部分让我畏惧。 我想要一个安装脚本,有一堆插入重新生成虚拟数据。 我现在有表格中的数据。 从数据集自动生成大量INSERT语句的最佳方法是什么? 我想在TOAD(对于Oracle)的东西,你可以右键单击一个网格,然后单击另存为 – >插入语句,它只会转储一个大的SQL脚本,无论你想要的地方。 我能想到的唯一方法就是将表格保存到Excel表格中,然后编写一个Excel公式为每一行创build一个INSERT,这当然不是最好的方法。 我正在使用2008 Management Studio连接到SQL Server 2005数据库。

如何安排一个SQL查询作业每天运行?

我需要知道如何使用最less的必需configuration设置使用SQL Server代理作业每天运行一个SQL查询。

SQL Server 2012列标识增量从第6条跳转到第1000条以上

我有一个奇怪的情况,我的SQL Server 2012数据库中的自动标识int列没有正确递增。 说我有一个表使用int自动标识作为主键,它是零星地跳过增量,例如: 1,2,3,4,5,1004,1005 这种情况发生在非常随机的随机数字表上,无法复制它以发现任何趋势。 这是怎么发生的? 有没有办法让它停止?

如何使用sqlcmd从SQL Server将数据导出为CSV格式?

我可以很容易地将数据转储到一个文本文件,如: sqlcmd -S myServer -d myDB -E -Q "select col1, col2, col3 from SomeTable" -o "MyData.txt" 但是,我已经查看了SQLCMD的帮助文件,但没有看到专门针对CSV的选项。 有没有办法使用SQLCMD将表中的数据转储到CSV文本文件?

在SQL Server中,如何为给定的表生成CREATE TABLE语句?

我已经花了很多时间来解决这个问题,所以本文的精神,我把它张贴在这里,因为我认为这可能对别人有用。 如果任何人有更好的脚本,或添加任何东西,请张贴它。 编辑:是的,我知道如何在pipe理工作室做到这一点 – 但我需要能够从另一个应用程序中做到这一点。

Sql Serverstring到date的转换

我想要这样转换一个string: '10/15/2008 10:06:32 PM' 转换为Sql Server中的等效DATETIME值。 在Oracle中,我会这样说: TO_DATE('10/15/2008 10:06:32 PM','MM/DD/YYYY HH:MI:SS AM') 这个问题意味着我必须将stringparsing为其中一种标准格式 ,然后使用其中一种代码进行转换。 对于这样一个普通的操作来说,这似乎很可笑。 有一个更简单的方法吗?

参数嗅探(或欺骗)在SQL Server中

前一段时间,我有一个查询,我为我的一个用户跑了很多。 它还在进化和调整,但最终稳定和运行相当快,所以我们创build了一个存储过程。 到目前为止,如此正常。 存储过程,但是,狗慢。 查询和过程没有实质性区别,但速度变化很大。 [背景,我们正在运行SQL Server 2005.] 一个友好的本地DBA(不再在这里工作)看了一下存储过程,并说“参数欺骗! ( 编辑:虽然它似乎也可能被称为“参数嗅探”,这可能解释了当我试图search出谷歌命中的缺乏)。 我们将一些存储过程抽象为第二个存储过程,将这个新的内部过程调用包装到预先存在的外部过程中,称为外部过程,并且嘿,它和原始查询一样快。 那么,是什么给了? 有人可以解释参数欺骗? 红利信贷 强调如何避免它 build议如何识别可能的原因 讨论替代策略,例如统计数据,指数,关键字,以缓解这种情况