Tag: sql server

使用默认值将Nullable列更改为NOT NULL

今天我碰到一个旧桌子,里面有一个名为“Created”的date时间列,它允许空值。 现在,我想改变这个,以便它不是NULL,还包括一个约束来添加一个默认值(getdate())。 到目前为止,我已经得到了下面的脚本,如果我事先清除了所有的空值, ALTER TABLE dbo.MyTable ALTER COLUMN Created DATETIME NOT NULL 有什么办法也可以在ALTER语句中指定默认值?

SQLite与SQL Server

请问任何人区分什么是最好使用SQLite或SQL Server? 我正在使用XML文件作为数据存储ADD,删除,更新..有人build议使用SQLite进行快速操作,但我不熟悉SQLite我知道SQL Server。

SQL Server Express(2012)和LocalDB有什么不同?

ErikEJ在其优秀和stream行的比较图表中 ,区分了SQL Server Express 2012和SQL Server 2012 LocalDB 。 但是,我无法在MSDN文档的任何其他地方find这样的区别(甚至在官方MS SS12书籍或MSDN SQL版本比较页面中没有提到“LocalDB”)。这使我怀疑Express和LocalDB并不是ErikEJ所说的两个独立的产品,而是同一个东西只是两个不同的术语(这可以解释为什么在这个MSDN页面上 ,它被称为“SQL Server 2012 Express LocalDB ”)。 如果产品之间真的有区别,谁能指出我的一些官方文档比较呢?

将MS Excel数据粘贴到SQL Server

我在Excel中有一堆行,我想粘贴到MS SQL中的新表。 有一个简单的方法吗?

SQL Server 2005和临时表范围

我已经阅读了临时表和范围的主题,我所看到的所有答案似乎都没有谈到我的担心之一。 我知道本地临时表的作用域只对存储过程或子存储过程的生命周期有效。 然而,在协调方面情况如何。 即如果我有一个存储过程,创build一个临时表,这是从两个不同的进程,但从相同的用户/连接string调用临时表,共享之间的两个调用该存储过程的临时表,或将是一种情况每次调用存储过程都会创build一个唯一的临时表实例。 我会假定临时表属于调用存储过程的范围,但是我想确定在我走下这条路之前。

如何从C#.net代码传递一个空variables到SQL存储过程

我从一个C#.net代码调用SQL存储过程: SqlHelper.ExecuteDataset(sqlConnection, CommandType.StoredProcedure, STORED_PROC_NAME, sqlParameters); sqlParametersvariables的定义如下: SqlParameter[] sqlParameters = new SqlParameter[SQL_NUMBER_PARAMETERS]; Log.Logger.Debug(string.Format("Running proc: {0} ", STORED_PROC_NAME)); SqlParameters[0] = new SqlParameter("fieldID", SqlDbType.BigInt ); SqlParameters[0].Value = fieldID; SqlParameters[0].Direction = ParameterDirection.Input; 我现在需要传入另外两个参数到这个存储过程(都是SqlDateTimetypes),在这种情况下这些参数都是NULL 。 谢谢, 在

如何知道SQL全文索引人口何时完成?

我们正在为针对testingSQL Server数据库运行的ASP.NET应用程序编写unit testing。 也就是说,ClassInitialize方法用testing数据创build一个新的数据库,ClassCleanup删除数据库。 我们通过从代码运行.bat脚本来做到这一点。 被testing的类被赋予一个连接到unit testing数据库而不是生产数据库的连接string。 我们的问题是,数据库包含一个全文索引,为了使我们的testing按预期运行,需要完整地填充testing数据。 据我所知,全文索引总是填充在背景中。 我希望能够: 使用同步(transact-SQL?)语句或者创build完全填充的全文索引 找出全文的完成时间,是否有callback选项,或者我可以反复询问? 我目前的解决办法是强制延迟最后的类初始化方法 – 5秒似乎工作 – 因为我找不到任何文档。

如何缩小我的SQL Server数据库?

我有一个大小为1.9Gb数据库的数据库,MSDE2000不允许超过2.0Gb的数据库 我需要缩小这个数据库(和许多这样的客户端位置)。 我发现并删除了1000多个被认为不需要的logging中的100多个logging:这些logging在数据库中的一些主要(最大)表中占很大比例。 因此,假设现在可以检索的空间是合理的。 所以现在我需要缩小数据库来弥补缺失的logging。 我执行DBCC ShrinkDatabase('MyDB') ……没有效果。 我已经尝试了MSSMS提供的各种缩小设施….仍然没有效果。 我已经备份了数据库,并恢复它…仍然没有效果。 还有1.9Gb 为什么? 无论我最终发现什么程序都需要在客户端机器上重放,并且只能访问OSQL或类似的东西。

尽pipevarchar(MAX)用于每列,但在导入CSV文件时SQL Server中出现错误

我试图插入一个大的CSV文件(几个演出)到SQL Server,但一旦我通过导入向导,最后尝试导入文件,我得到以下错误报告: 执行(错误)消息错误0xc02020a1:数据stream任务1:数据转换失败。 “”标题“”返回状态值4和状态文本“列的数据转换被截断或目标代码页中一个或多个字符不匹配。 (SQL Server导入和导出向导) 错误0xc020902a:数据stream任务1:“源 – Train_csv.Outputs [平面文件源输出] .Columns [”标题“]”失败,因为截断发生,截断行处置“Source – Train_csv.Outputs [Flat File Source输出] .Columns [“标题”]指定截断失败。 指定组件的指定对象上发生截断错误。 (SQL Server导入和导出向导) 错误0xc0202092:数据stream任务1:处理数据行2上的文件“C:\ Train.csv”时发生错误。(SQL Server导入和导出向导) 错误0xc0047038:数据stream任务1:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。 Source – Train_csv上的PrimeOutput方法返回了错误代码0xC0202092。 pipe道引擎调用PrimeOutput()时,组件返回失败代码。 失败代码的含义由组件定义,但错误是致命的,并且pipe道停止执行。 在此之前可能会发布错误消息,提供有关失败的更多信息。 (SQL Server导入和导出向导) 我创build了表格来将文件插入到第一个列表中,并将每列设置为保存varchar(MAX),所以我不明白我是如何仍然有这个截断问题。 我究竟做错了什么?

了解SELECT查询上的SQL Server LOCKS

我想知道什么是有利的使用SELECT WITH (NOLOCK)在一个表上,如果唯一影响该表的其他查询是SELECT查询。 SQL Server如何处理? SELECT查询会阻止另一个SELECT查询吗? 我正在使用SQL Server 2012和Linq-to-SQL DataContext 。 (编辑) 关于performance: 如果使用locking的SELECT第二个SELECT是否必须等待第一个SELECT完成? 与SELECT WITH (NOLOCK)对比? 谢谢。