Questions tagged «sql-server-2005»

使用此标记可以解决特定于Microsoft SQL Server 2005版本的问题。


29
将存储过程的结果插入临时表
我该怎么办SELECT * INTO [temp table] FROM [stored procedure]?不FROM [Table],没有定义[temp table]? Select所有数据都可以BusinessLine正常tmpBusLine工作。 select * into tmpBusLine from BusinessLine 我正在尝试相同,但是使用stored procedure返回数据的a 并不完全相同。 select * into tmpBusLine from exec getBusinessLineHistory '16 Mar 2009' 输出信息: 消息156,级别15,状态1,第2行关键字“ exec”附近的语法错误。 我已经阅读了几个创建与输出存储过程具有相同结构的临时表的示例,该示例工作正常,但最好不要提供任何列。


28
检查SQL Server中是否存在表
我希望这是关于如何使用SQL语句检查SQL Server 2000/2005中是否存在表的最终讨论。 当您用Google搜索答案时,会得到很多不同的答案。有官方/后向和向前兼容的方式吗? 这是两种可能的方法。两种方法中的哪一种是标准/最佳方法? 第一种方式: IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE' AND TABLE_NAME='mytablename') SELECT 1 AS res ELSE SELECT 0 AS res; 第二种方式: IF OBJECT_ID (N'mytablename', N'U') IS NOT NULL SELECT 1 AS res ELSE SELECT 0 AS res; MySQL提供的简单 SHOW TABLES LIKE '%tablename%'; 声明。我正在寻找类似的东西。

9
使用联接的SQL更新查询
我必须更新一个值,该值由3个表的联接返回。 例: select im.itemid ,im.sku as iSku ,gm.SKU as GSKU ,mm.ManufacturerId as ManuId ,mm.ManufacturerName ,im.mf_item_number ,mm.ManufacturerID from item_master im, group_master gm, Manufacturer_Master mm where im.mf_item_number like 'STA%' and im.sku=gm.sku and gm.ManufacturerID = mm.ManufacturerID and gm.manufacturerID=34 我想用其他在上述条件下加入的mf_item_number值更新表的字段值item_master。 如何在MS SQL Server中执行此操作?

14
在创建临时表之前检查临时表是否存在,并删除是否存在
我正在使用以下代码检查临时表是否存在,并在重新创建之前删除该表是否存在。只要我不更改列,它就可以正常工作。如果以后再添加一列,则会显示“无效列”错误。请让我知道我在做什么错。 IF OBJECT_ID('tempdb..#Results') IS NOT NULL DROP TABLE #Results CREATE TABLE #Results ( Company CHAR(3), StepId TINYINT, FieldId TINYINT, ) select company, stepid, fieldid from #Results --Works fine to this point IF OBJECT_ID('tempdb..#Results') IS NOT NULL DROP TABLE #Results CREATE TABLE #Results ( Company CHAR(3), StepId TINYINT, FieldId TINYINT, NewColumn …

15
插入多行而不重复语句的“ INSERT INTO…”部分?
我知道我早在几年前就完成了此操作,但是我不记得该语法,而且由于收集了大量有关“批量导入”的帮助文档和文章,所以在任何地方都找不到它。 这是我想做的,但是语法不完全正确……请曾经做过此事的人帮帮我:) INSERT INTO dbo.MyTable (ID, Name) VALUES (123, 'Timmy'), (124, 'Jonny'), (125, 'Sally') 我知道这接近正确的语法。我可能在其中需要“散装”一词,或者我不记得的东西。任何的想法? 我需要一个SQL Server 2005数据库。我已经尝试过此代码,但无济于事: DECLARE @blah TABLE ( ID INT NOT NULL PRIMARY KEY, Name VARCHAR(100) NOT NULL ) INSERT INTO @blah (ID, Name) VALUES (123, 'Timmy') VALUES (124, 'Jonny') VALUES (125, 'Sally') SELECT * FROM …


28
因为FOREIGN KEY约束正在引用表,所以无法截断它?
使用MSSQL2005,如果我首先截断子表(具有FK关系主键的表),是否可以截断具有外键约束的表? 我知道我可以 使用DELETE无where子句,然后RESEED使用标识(或) 删除FK,截断表,然后重新创建FK。 我以为只要我在父表之前将子表截断,就可以不做上述任何一个选择,但是我会收到此错误: 无法截断表'TableName',因为它已被FOREIGN KEY约束引用。

8
为什么在创建索引时使用INCLUDE子句?
在学习70-433考试时,我注意到您可以通过以下两种方式之一创建覆盖指数。 CREATE INDEX idx1 ON MyTable (Col1, Col2, Col3) - 要么 - CREATE INDEX idx1 ON MyTable (Col1) INCLUDE (Col2, Col3) INCLUDE子句对我来说是新的。在确定是否创建包含或不包含INCLUDE子句的覆盖索引时,您将为什么使用它以及您会建议什么准则?

7
SQL Server查询-使用DISTINCT选择COUNT(*)
在SQL Server 2005中,我有一个表cm_production,其中列出了已投入生产的所有代码。该表具有ticket_number,program_type,program_name和push_number以及其他一些列。 目标:按程序类型和推送编号计算所有DISTINCT程序名称 到目前为止,我有: DECLARE @push_number INT; SET @push_number = [HERE_ADD_NUMBER]; SELECT DISTINCT COUNT(*) AS Count, program_type AS [Type] FROM cm_production WHERE push_number=@push_number GROUP BY program_type 这让我感到很困惑,但是它计算的是所有程序名称,而不是不同的名称(我不希望它在该查询中执行)。我想我只是无法解决如何告诉它只选择不同程序名称而不选择它们的问题。或者其他的东西。


19
如何避免SQL中的“被零除”错误?
我有此错误信息: 消息8134,级别16,状态1,第1行除以零错误。 编写SQL代码以使我再也看不到此错误消息的最佳方法是什么? 我可以执行以下任一操作: 添加一个where子句,这样我的除数永远不会为零 要么 我可以添加一个case语句,以便对零进行特殊处理。 使用NULLIF子句的最佳方法是吗? 有没有更好的方法,或者如何执行?

10
在Microsoft SQL Server 2005中模拟group_concat MySQL函数?
我正在尝试将基于MySQL的应用程序迁移到Microsoft SQL Server 2005(不是强制选择,但这是必须的)。 在原始应用程序中,我们几乎完全使用了 ANSI-SQL兼容的语句,但有一个明显的例外-我们group_concat相当频繁地使用MySQL的函数。 group_concat顺便说一句,这样做:给一个表,例如,雇员姓名和项目... SELECT empName, projID FROM project_members; 返回: ANDY | A100 ANDY | B391 ANDY | X010 TOM | A100 TOM | A510 ……这就是使用group_concat得到的结果: SELECT empName, group_concat(projID SEPARATOR ' / ') FROM project_members GROUP BY empName; 返回: ANDY | A100 / B391 / X010 TOM …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.