Sql server 获取插入行的PK Guid的最佳方法

我读过关于获取插入行的标识的内容。我的问题有点相关 有没有办法获取插入行的guid?我正在使用的表有一个guid作为主键(默认为newid),我希望在插入行后检索该guid guid是否有类似于@@IDENTITY、IDENT\u CURRENT或SCOPE\u IDENTITY的内容?您可以使用输出功能将默认值返回到参数中 CREATE TABLE MyTable ( MyPK UNIQUEIDENTIFIER DEFAULT NEWID(), MyColumn1 NVARCH

Sql server SQL Server是取整还是截断?

假设我在十进制(17,5)字段中插入一个64位浮点双精度。值是四舍五入还是截断?它四舍五入: select cast(9.12345 as decimal(10,4)) 返回9.1235良好测试。你也可以创建一个临时表来测试它。@Esteban:我想你可以,但我很懒。

Sql server Crystal Reports与Microsoft SQL Server Reporting Services

我正在开发一个WPF应用程序,我需要你的建议 我必须在我的应用程序中生成报告。我应该使用什么,Crystal Reports还是SQL Server Reporting Services?哪一个更好,为什么?我两者都用过 尽管Crystal Reports非常有名,而且应用非常广泛。有时这可能是一件麻烦事(不是说SQL Server reporting services有时不是一件麻烦事。) 水晶报告的优点 许多人使用它,并了解如何使用它 有能力快速创建从基础到中间的报告者优先 即使你不懂SQ

Sql server SQL Server中上午10:00太平洋标准时间的数据类型是什么

我有一个需要存储时隙的表,例如太平洋标准时间上午10:00,太平洋标准时间上午10:15。。。。以15分钟的恒定间隔进行etc 我想知道是否有时间数据类型可用于此类数据 我需要将它们存储为太平洋标准时间上午11:00、上午11:15、上午11:30、下午11:45、下午12:00、下午12:15、下午12:30、下午12:45、下午01:00。。。。。等等 同样在将来,如果业务要求是20分钟的间隔,我应该能够很容易地更改它 谢谢您可以使用数据类型 如果这对您来说太过分了,因为您只需要将时间间隔存

Sql server 仅将新的或更新的记录导入sql数据库,使用bcp导入和导出

我有一个csv文件。现在,我必须将此文件中的所有数据导入我的sql数据库mdf文件 项目ID 178 212 3423 我只需要从bcp进行导入。但是,经过一段时间后,该文件将更新为一些新记录,我希望这次只获取新记录并插入sql数据库。如何做到这一点?我是否必须匹配现有的ItemID,或者在ItemID列上使用主键,以及何时它将自动拒绝重复记录,或者我是否应添加一个新列作为DateTimeOfInert,然后相应地执行,请sugget?: 项目ID 178 212 3423 4676 782 2

Sql server 从postgres调用SQL Server存储过程

有没有办法从postgres调用SQL Server上的远程存储过程 我需要调用一个接收3个参数的存储过程并在远程SQL Server数据库上进行插入,如果可能的话,我如何知道查询是正常的还是在插入过程中出错,因为数据库上的两个表需要具有相同的信息。Dblink仅连接到其他postgres数据库。另一方面,Dbi链接可能会起作用。

Sql server SSI使用OLEDB连接器获取错误的列类型

SSIS项目进行到一半时,某些表字段从char(30)更改为nvarchar(30) 但是,在运行SSIS包时,会出现一个错误,说明无法从unicode转换为非unicode。 我试图将数据直接从数据库源传输到目标 两个连接使用相同的数据库架构,因此不应进行转换 当检查外部列数据类型时,它会显示D_STR,情况已不再如此 我试图同时删除源和目标,希望它能清除任何类型的缓存数据,但没有成功 有什么想法吗?nvarchar和nchar都是unicode。相反,varchar和char是非unicod

Sql server Sql Server-避免延迟编译

我有一个可以同时查询和更新两个数据库(彼此不同)的应用程序,它已经使用了大约10到15年。所以我想开始清理他们的垃圾 我想做的一件事是删除数据库B中错误创建的所有存储过程(因为它们必须进入数据库A) 如果我一个接一个地执行,这很容易,因为我可以判断sp是否使用了不在该数据库中的表。但我打赌有很多,所以我想得到一个验证这一点的查询 这是microsoft提供的解释此问题的链接:。但这并没有给我任何解决办法 我尝试了以下方法: 但它对一些人有效,但并非对所有人有效 你们知道有什么有效的方法可以百分

Sql server 如何在SQL Server中创建删除前触发器?

我想创建一个before delete触发器。从表中删除记录时,必须将该记录插入历史记录表中。在SQL Server中如何执行此操作?在这种情况下,最好执行常规的“after”触发器。这是处理此类情况的最常见方法 差不多 CREATE TRIGGER TRG_AUD_DEL ON yourTable FOR DELETE AS INSERT INTO my_audit_table (col1, col2, ...) SELECT col1, col2... FRO

Sql server 在SQLServer中使用XQuery

我的表包含两列,一列是int类型的Id,另一列是Xml类型 在Xml列中,我有这个结构的数据 <Fields> <Field name='aa' value='000'/> <Field name='bb' value='111'/> <Field name='cc' value='222'/> </Fields> 现在使用XQuery,我想查询表以获得所有行,其中name属性的字段标记为aa,value属

Sql server &引用;防止保存需要重新创建表的更改";负面影响

序言 今天我在SQLServer2008中修改了一个专栏,将数据类型从类似于currency(18,0)的内容更改为(19,2) 我从SQL Server中得到错误“您所做的更改要求删除并重新创建以下表” 在您匆忙回答之前,请阅读以下内容: 我已经知道工具中有选项► 选择权► 设计师► 表和数据库设计器► 取消选中框“防止保存需要重新创建表的更改。” …所以不要回答这个问题 实际问题 我的实际问题是关于其他问题,如下所示: 这样做是否有任何负面影响/可能的缺点 如果取消选中此框,是否会自动删除并

Sql server ASP Classic/MSSQL记录显示在多个表中,而不是行中

我正在开发我的第一个ASP经典应用程序,它只是一个简单的程序,将数据添加到MSSQL数据库,并在另一个页面上显示所有记录 我让一切看起来都正常工作,除了当我转到查看页面时,它会显示自己表中的所有记录,而不是显示为一个带有标题行的表,然后显示多行中的多条记录 我不是在找人帮我解决这个问题,这不是我学习的方式,但是如果有人能给我指出正确的方向,我一定会很感激的 示例代码: <table border="1"> <tr> <td><%=objRec.Fie

Sql server 如何在SQLServer中使用平滑的普通SQL返回自动生成的ID

我想将自动生成的ID从insert返回到带有标识字段的SQL Server表中 我的第一次尝试是在使用insert语句的同时使用SQL Server的@IDENTITY功能,返回一个ID为的单行/列结果集 i、 e.) 然而,在这种情况下,slick总是返回1 编辑:我撒谎了,它总是返回1,我认为这是受影响的行数。作为一个测试,我尝试这样修改查询以查看会发生什么,我收到一个异常“java.lang.ClassCastException:java.lang.Integer不能转换为scala.Tu

Sql server 什么设置会影响隐式转换?

我可以访问两个数据库,它们应该是彼此的副本。在这两个表上都有一个名为GROUP的表,其中有一列GROUP\u INVOICE\u NUMBER(varchar(20),非空) 在我可以执行的第一个数据库上: select * from GROUP where GROUP_INVOICE_NUMBER = 4 这太好了。然而,在第二天,我得到: 转换时,Msg 245,16级,状态1,第1行转换失败 将varchar值“1626CR2”设置为数据类型int 我知道这两个数据库实例之间一定存在差异

Sql server T-SQL从联接中选择空值

从本质上讲,我想从左表(BO_HRO)中选择数据,该表在两列中都有一个匹配的行,该行在右表(BO_HRO_EXT)中不存在 但是,下面列出的查询以左联接的方式工作,并返回左表中的所有行,无论它们是否存在于右表中 SELECT preventable, warrantable FROM BO_HRO LEFT JOIN BO_HRO_EXT ON BO_HRO.RO_NO = BO_HRO_EXT.RO_NO AND (preventable = 0 OR preventable IS NUL

Sql server 如何将xml数据插入SQL Server表?

如何将以下XML数据导入到具有三列的SQL Server表中 <dataset> <metadata> <item name="NAME_LAST" type="xs:string" length="62" /> <item name="NAME_FIRST" type="xs:string" length="62" /> <item name="NAME_MIDDLE" type="xs:string" length="

Sql server 当源不匹配时,忽略过滤器上的

我在web服务中有一个SQL proc,它接受一组用户数据并执行以下操作: 如果用户在目标位置不存在,请将其插入 如果目标中存在该用户,请使用源中的任何新详细信息进行更新 如果源中不存在该用户,则将其归档到目标中 最后一部分(未与源匹配,则更新)存在问题,因为表中的每一行都更新为存档=1。我假设只有customerId与@customerId匹配的行才会受到影响,但它会更新除在上的中匹配的行之外的所有行,并忽略上的过滤器 MERGE [tbl_Users] AS tgt -- Targe

Sql server 更改Excel中的默认数据库连接

我们的团队正在使用Excel从其他来源获取数据——MS SQL server或OLAP多维数据集。当我们连接到服务器时,它会显示一个默认数据库 有没有办法把这个默认数据库改成另一个 谢谢控制面板-管理工具-数据源 找到您正在使用的数据源并“配置”它。在向导的第三个屏幕上,您可以更改默认数据库。我假设Excel按字母顺序显示数据库,并且只使用第一个作为默认数据库。大家好,现在有人知道如何操作了吗?正如我所见,Excel没有将第一个数据库设置为默认数据库,因为不知何故,我在列表中有第三个数据库作

Sql server Yii:对动态列进行排序和格式化

我使用CSqlDataProvider在CGridView中显示来自动态SQL查询的数据。有一些静态列和一些动态列。现在我想在动态列中设置一些特殊的格式,比如货币。但是,当我在执行查询之前不知道列的编号/名称时,我该如何做呢 此外,我还希望能够对动态列进行排序,同样的问题是,我没有所有的列名 以前使用过动态查询和gridview的任何人。请给我指出正确的方向,或者给我一些建议 简而言之,我能够成功地在gridview中显示数据(也是动态行)并对所有静态列进行排序。只需要对动态行进行排序并格式化动

Sql server 不包括导航属性和db往返

假设我有一句话: var eggs = db.Nests.Single(b => b.id = 20).Birds.FirstOrDefault().Eggs; 在我的探查器跟踪中,我看到有多个命令正在执行: SQL:BatchString SELECT TOP (2) [Extent1].[id] ... FROM [dbo].[Nest] AS [Extent1] WHERE 20 = [Extent1].[id] SQL:BatchCompleted RPC:Completed

Sql server Can';在Visual studio 2013中的sql数据库中进行编辑

我使用SQLServer2008R2。我在SQl management studio中创建了一个数据库,并设计了表。 当我在Visual Studio 2013中打开数据库时,我无法编辑数据库中的任何内容 见下图: 我该怎么办?我找到了答案 我刚刚重新安装了VisualStudio,它正常工作了 谢谢大家 VS 2013支持sql 2012、2014设计表 您可以使用“工具->sql->新建查询…”菜单供将来的读者使用并下载SSDTSetup.exe。您在VS中使用的sql或Windows标识

Sql server 从订单日期之间有任何项目的表中选择所有项目

我有一个Orders表和一个OrderItem表。我想选择在两个日期之间发货的所有OrderItems,并选择在两个日期之外发货的特定类型的附加OrderItem,如果它是在两个日期之间发货的OrderItems订单的一部分 当我第一次想到它时,这看起来很容易,但是我很难将它放到SQL语句中。我正在使用SQLServer 编辑: 是的,我熟悉between关键字。我拥有的是一份订单,比如说订单#10001。它有两个项目,一个是在2015年1月20日装运的产品,一个是在2015年4月2日装运的保修

Sql server 灵活的外键

我有一个sql server数据库。我正在开发一个vb.net应用程序 现在我想有一个“事件”表,它应该保存与我的数据库相关的所有事件。但此表的其中一个字段应该是与此事件必须执行的记录相关的字段ObjectID。但这一记录可能在不同的表格上。例如: 事件1----在表客户机上记录25 事件2——记录30张表格发票 事件3——记录40篇表格文章 问题在于,该字段ObjectID应该以灵活的方式成为外键,因为它可能与不同的表相关 我有办法解决这个案子吗 谢谢大家! SQL Server不支持创

Sql server SQL Server:自动导入表

我试图通过另一个系统创建的文本文件更新一个表。我正在考虑自动化导入向导。这在SQL Server中可能吗?我以前在MS Access中完成过这项工作。我甚至保存了导入规范,它每天运行3次。在导入向导结束时,您可以将导入保存为SSIS包,然后可以在SQL Server代理作业中设置导入。或者,如果您需要比向导更大的灵活性,您可以构建SSIS包。

Sql server 在VB中用ADO打开与SQL Server 2014数据库的连接

我正在尝试使用Visual Basic中的ADO连接到SQL Server 2014中的数据库。我想获取名为payroll的表,并将employee列存储到记录集中。我的数据库名为Employee,我的表名为Payroll,我想从表Payroll中检索的列名为Employee。我的cnn上出现错误。打开行: WordInvoice.dll中出现“System.Runtime.InteropServices.COMException”类型的异常,但未在用户代码中处理 其他信息:多步骤OLE DB操

Sql server SQL任务(SSIS)-将结果提取到类型为(DBTYPE\U DATE)的变量时出错?

我必须在现有SSIS解决方案中工作。最初的步骤之一是简单地截断现有的Oracle表 现有有问题的SQL任务如下所示(替换了架构和表) “截断表架构.表” -1 使用者 0 0 2345截断表ledger.fusion\u fx\u rates\u processstaging SQL\u变量SQL\u ClearDownFusionFXRatesProcessstaging {71911B6D-A0F8-49E4-9F7C-769BAEB5E8F9} 第一个让我感到奇怪的是,当我在控制流中打开

Sql server 正在添加NT AUTHORITY\NETWORKSERVICE的权限

我想将.mdf文件附加到我的SQL Server 2008实例 我知道要执行此操作,我需要为运行SQL Server的帐户授予文件夹权限 从答案中我发现帐户是 NT AUTHORITY\NETWORKSERVICE 通过运行 wmic service where "name Like 'MSSQL%'" get Name , StartName 但是,当我尝试向该帐户授予权限时,出现了一个错误 The following object is not from a domain listed

Sql server 将Access查询中的Bool插入SQL Server数据库

我不知道如何将Access查询中的布尔值插入SQL Server表 Access通常使用0表示false,使用1表示true。在SQL Server中,为真为1 所以我的问题是:如果我想在我的SQLServer表中插入一个真值,我能不能说-1,SQLServer就会知道如何解释它?或者我是否有将1设置为真 编辑:此外,是否可以在insert语句中输入true而不是数字值?快速示例来说明: CREATE TABLE BoolTest(SomeText VARCHAR(50), SomeBool B

Sql server 搜索两个日期之间的月份

我是sqlserver的新手,我正在努力解决这个问题。我需要你的帮助。 我的数据库中有一个名为MainTable的表。在表中,我有3列名为Id、StartDate、EndDate。 我想要的是:我想发送一个月的查询,它将查看该月是否在开始日期和结束日期之间。如果是,它应该返回该行的ID 例如: 第1行:Id:12,开始日期:2015-01-01,结束日期:2015-06-01 第2行:Id:14,起始日期:2015-05-01,结束日期:2015-08-01 如果我问“三月”。它应该返回12 我

Sql server 从OLEDB数据导出到Excel文件时SSIS失败

调试时,它会显示在输出中: SSIS包“C:\Users\UserA\Documents\Visual Studio 2015\Projects\eSSIS\eSSIS\Package1.dtsx“启动。 信息:数据流任务1,SSIS处的0x4004300A。管道:验证 这一阶段正在开始。信息:数据流任务1处的0x4004300A, 管道:验证阶段正在开始。信息:0x40043006 在数据流任务1中,SSIS.Pipeline:准备执行阶段为 开始信息:0x40043007位于数据流任务1,S

Sql server 如何获取id';用于插入子项的父ID的数目

我有父表和子表 目标是复制记录,除非使用新的主键 原始表格 Parent(id) 1 Child(id,parentId, data) 1,1 2,1 插入后: Parent 1 2 Child 1,1 2,1 3,2 4,2 我该怎么做?我遇到的问题是获取用于子记录的新父密钥 这就是我到目前为止所想到的 --DECLARE VARS declare @currentMetadataDocumentSetId int = 1, --Ohio @newMetadataDocumen

Sql server 将列代码设置为表上的外键,并引用另一个表

我的两张桌子有问题。一个表名为tblShoes,另一个表名为tblplayer。问题是我想将表tblPLAYERS中的列代码设置为外键,并引用表tblSHOES列代码。但是我试图在tblPLAYER表中插入我的代码,但它不起作用。请你帮我解释一下原因。 这是我的两张桌子 创建表tbl_鞋 ( code varchar not null主键, 品牌varchar不为空, 模型int不为空, 大小varchar不为空 )) 创建表tbl_播放器 ( RosterNo int主键, 名字叫瓦查尔, 位

Sql server 删除cursursql语句

我想删除SQL中的游标,以提高性能(因为我想学习如何使用最佳实践,而最佳实践应该是基于设置的,没有游标) 无论如何,我有一个临时表,它看起来像这样: +------------+--------+-------+----+ | Period | Change | Value | NR | +------------+--------+-------+----+ | 201705 | 7 | 26055 | 1 | | 201704 | 29 |

Sql server 汇总每个客户的已交付公司(ID)

我又开始行动了;)这一次我有一个相当繁重的任务(我想) 以下是我得到的: |customerID ||company |compdel |Street |Code |Date 1 |Date 2 | +-------------------------------+--------------------------------------+ |1 ||Example1 |DELExam1|ABC Rd.1|4025 |01.01.2015 |01.08.2

Sql server 查找所有存储过程,包括其正文中的文本

我在存储过程名称、Id等中看到了一些关于搜索文本的答案,但我没有找到查找所有存储过程(包括其主体的SQL)的好方法 更多信息:我有一张叫做X的桌子;我想删除它,我想确保它没有在存储过程中使用。这将找到所有过程、函数、触发器等,其中包含文本X SELECT DISTINCT o.name AS Object_Name, o.type_desc, m.* FROM sys.sql_modules m INNER JOIN sys.objects o

Sql server SQL Management Studio从一台服务器导出带标头的CSV,而从另一台服务器导出不带标头的CSV

让一个MSSQL Management Studio 2017实例连接到两个不同的SQL 2016服务器。我对每台服务器上的数据库运行查询,并将结果保存为CSV以与WinMerge进行比较 问题:一个查询窗口保存带标题行的CSV,另一个查询窗口保存不带标题行的CSV。我必须先编辑一个文件,然后再进行比较,以删除标题行 有人知道为什么我使用Management Studio的一个实例会得到不同的结果吗?请查看SSMS中的此选项: 确保选中该选项,然后关闭正在使用的不保存列标题的查询窗口,并打开一

Sql server 如何在sql server中使用组_concat进行查询

我知道在sql server中,我们不能使用Group\u concat函数,但我有一个问题,我需要Group\u concat我的查询。我在谷歌上找到了一些逻辑,但无法更正。我的sql查询是 select m.maskid,m.maskname,m.schoolid,s.schoolname, md.maskdetail from tblmask m join school s on s.id = m.schoolid join maskdetails md on m.maskid = m

Sql server SSIS返回不正确的错误

我创建了SSIS包,它在SQL Server中创建了表MyTable,其中包含一列BaseVariantVersionID。程序首先将数据插入此表 在包的末尾,我应该从表中删除列BaseVariantVersionID 第一次调试还可以。但在第二次尝试时,SSIS返回一个验证错误。它不允许使用BaseVariantVersionID重新创建表,因为在下一步中,包无法在列中插入,现在不显示该列 也许您知道一些禁用当前数据库检查的属性 更新 我在所有步骤之后都会放下这个列。 在第一步中,我用colu

Sql server 将Azure上的UTC转换为EST时间(包括夏令时动态版本)

我有一个关于将UTC时区转换为EST时区的问题,因为我还是SQL语言和Azure平台的新手。在日志文件中,我使用日志文件中的系统内置函数“GetDate()”获取日期/时间。但是,在访问我的SSMS上的Azure数据库时,使用系统内置函数(GetDate())可以获得UTC时区中的datetime,比东部时区(EST)早4小时。在将UTC转换为EST之前,我曾问过类似的问题 ,和@DanGuzman帮助我修复代码。但这个问题更多的是将UTC转换为EST(动态地考虑夏令时)。下面是到目前为止我的代

Sql server SQL将null替换为值列表

我有一个城市和州人口表格 CREATE TABLE dbo.City ( Code INT, CityName VARCHAR(30) ) INSERT INTO CITY (CODE, CityName) select 1, 'Woodside' union select 2, 'Sunnyside' union select 3, 'Flushing' union select 4, 'Elmhurst' union

Sql server 由于错误0x80070057“;参数不正确。”;SSIS作业无法运行

我的SSIS工作在SQL Server 2008中运行良好,但在SQL Server 2017中不再工作。我收到的错误消息是: 请告知此问题的任何解决方案。感谢您,SQL Server 2008 R2上使用的SSIS解决方案必须迁移才能在2016/2017年正常工作。ssis软件包的XML结构完全不同,我相信2008年的软件包在2012/2014年之前才得到支持 这样做的过程是基本的 安装VS2017和最新版本的SSDT 打开SSIS项目并运行迁移向导 解决迁移冲突 构建和部署 你在用吗?我想

Sql server TClientDataset编辑具有100k+;记录

客户机希望构建一个类似于工作表的应用程序来显示数据库中的数据(可能是在TDbGrid或类似的数据库上),从而可以像在工作表中一样免费搜索和编辑所有单元格。基础表将有超过100k行 使用TClientDataset的问题在于,它倾向于将所有数据加载到内存中,从而违反了以下3个用户必备条件: 用户可以使用滚动条、键盘或搜索过滤器随时从第一条记录导航到最后一条记录(请注意,如果转到最后一条记录,TClientDataset将加载所有记录,AFAIK…) 连接将通过外部VPN/互联网(可能较慢),因此应

Sql server SQL Server字符串到m x n表

这里有许多关于在SQL中拆分字符串的优秀帖子。 然而,我正在寻找一个真正的字符串到表函数 换句话说,获取表示表(具有多个行和列)的字符串并在SQL Server中生成等效表 这意味着有一个内部分隔符和一个外部分隔符 字符串需要由外部分隔符拆分为行,然后将每行转换为一组列 我在这里找不到任何帖子,所以我想我应该提交我的版本并征求反馈 在我的特定使用场景中,我知道每行不超过10列,并且总大小小于varchar(8000) 下面是tfSplitString函数(列出只是为了完整;您可以随意使用自己的版

  1    2   3   4   5   6  ... 下一页 最后一页 共 2484 页