Questions tagged «sql-server»

Microsoft SQL Server是一个关系数据库管理系统(RDBMS)。将此标签用于所有SQL Server版本,包括Compact,Express,Azure,Fast-track,APS(以前称为PDW)和Azure SQL DW。请勿将此标签用于其他类型的DBMS(MySQL,PostgreSQL,Oracle等)。除非该标签与数据库直接相关,否则请勿将其用于软件和移动开发问题。

5
如何使用Powershell执行.sql文件?
我有一个 。sql文件。我正在尝试通过Powershell脚本传递连接字符串详细信息并调用.sql文件。 我正在搜寻,并想出一个与相关的cmdlet Invoke-sqlcmd。在尝试查找与SQL相对应的模块时,我的计算机中未找到任何模块。 我是否应该在计算机上安装任何东西(该计算机已经具有SQL Server Management Studio 2008 R2)来获取模块,或者是否有任何简单的方法可以.sql使用Powershell执行文件?


9
带有标识(自动增量)列的批量插入
我正在尝试从CSV文件向数据库中添加批量数据。 Employee表的列ID(PK)自动增加。 CREATE TABLE [dbo].[Employee]( [id] [int] IDENTITY(1,1) NOT NULL, [Name] [varchar](50) NULL, [Address] [varchar](50) NULL ) ON [PRIMARY] 我正在使用此查询: BULK INSERT Employee FROM 'path\tempFile.csv ' WITH (FIRSTROW = 2,KEEPIDENTITY,FIELDTERMINATOR = ',' , ROWTERMINATOR = '\n'); .CSV文件- Name,Address name1,addr test 1 name2,addr test 2 但它导致此错误消息: 第2行第1列(id)的批量加载数据转换错误(类型不匹配或指定代码页的字符无效)。

2
不同的RAISERROR严重性级别是什么意思?
我最好的google结果是这样的: 低于11的警告而非错误 11-16可使用 16以上是系统错误 11-16岁之间没有行为差异 但是,从BOL开始,“任何用户都可以指定0到18的严重级别。” 在我特定的存储过程中,我希望错误返回给.Net客户端应用程序,因此看起来11-18之间的任何严重性级别都可以解决问题。是否有人掌握有关每个级别的含义以及如何使用的权威信息?

4
是否总是首选varchar(MAX)?
关于SQL Server,我了解: var 表示内存是延迟分配的,这意味着它完全适合(插入时)数据。 MAX 表示没有大小限制\限制。 那么,在使用MAX时,是否总是最好使用varchar,因为我们无论如何都不分配整个大小? 我们是否应该仅在要在此数据库列上强制执行约束的情况下才使用恒定大小?
74 sql  sql-server  tsql 


5
将可空列更改为具有默认值的非空
今天,我遇到了一个旧表,其中有一个名为“ Created”的日期时间列,该列允许为空。现在,我想更改它,使其不是NOT NULL,并且还包含一个约束以添加默认值(getdate())。 到目前为止,我已经有了以下脚本,只要我事先清除了所有空值,该脚本就可以正常工作: ALTER TABLE dbo.MyTable ALTER COLUMN Created DATETIME NOT NULL 有没有办法在ALTER语句上也指定默认值?


4
SQL NOT IN不起作用
我有两个数据库,一个数据库保存库存,另一个数据库包含主数据库记录的子集。 以下SQL语句不起作用: SELECT stock.IdStock ,stock.Descr FROM [Inventory].[dbo].[Stock] stock WHERE stock.IdStock NOT IN (SELECT foreignStockId FROM [Subset].[dbo].[Products]) 不在不起作用。删除NOT会给出正确的结果,即两个数据库中都有产品。但是,使用NOT IN根本不会返回任何结果。 我在做什么错,有什么想法吗?
74 sql  sql-server 

5
如何在SQL Server中翻转一下?
我正在尝试在SQL Server中执行按位NOT。我想做这样的事情: update foo set Sync = NOT @IsNew 注意:我开始写这篇文章,然后在完成之前找到了自己问题的答案。我仍然想与社区分享,因为MSDN上缺少此文档(直到我也将其添加到社区内容中)。



6
如果指定了SELECT DISTINCT,则ORDER BY项目必须出现在选择列表中
我将选择列表中的列添加到按列表排序,但是它仍然给我错误: 如果指定了SELECT DISTINCT,则ORDER BY项目必须出现在选择列表中。 这是存储的过程: CREATE PROCEDURE [dbo].[GetRadioServiceCodesINGroup] @RadioServiceGroup nvarchar(1000) = NULL AS BEGIN SET NOCOUNT ON; SELECT DISTINCT rsc.RadioServiceCodeId, rsc.RadioServiceCode + ' - ' + rsc.RadioService as RadioService FROM sbi_l_radioservicecodes rsc INNER JOIN sbi_l_radioservicecodegroups rscg ON rsc.radioservicecodeid = rscg.radioservicecodeid WHERE rscg.radioservicegroupid IN (select val from dbo.fnParseArray(@RadioServiceGroup,',')) OR @RadioServiceGroup IS …
73 sql  sql-server  tsql 

14
如何比较在T-SQL中可能都为空的值
我想确保我没有在表中插入重复的行(例如,仅主键不同)。我所有的字段都允许使用NULLS,因为我将null表示为“所有值”。由于为空,因此我的存储过程中的以下语句不起作用: IF EXISTS(SELECT * FROM MY_TABLE WHERE MY_FIELD1 = @IN_MY_FIELD1 AND MY_FIELD2 = @IN_MY_FIELD2 AND MY_FIELD3 = @IN_MY_FIELD3 AND MY_FIELD4 = @IN_MY_FIELD4 AND MY_FIELD5 = @IN_MY_FIELD5 AND MY_FIELD6 = @IN_MY_FIELD6) BEGIN goto on_duplicate END 因为NULL = NULL不为真。 如何在没有每一列都具有IF IS NULL语句的情况下检查重复项?

3
从SQL中的存储过程获取RETURN值
我有一个存储过程,它的RETURN值为0或1结尾。 我想在另一个存储过程的IF语句中使用此值。 如何获取前一个存储过程的返回值并将其保存在后者的变量中? 我找不到任何相关内容。所有问题都与在C#中获取RETURN值有关。 我在想,也许是这样的: SP_Two DECLARE @returnValue INT SET @returnValue = EXEC SP_One IF @returnValue = 1 BEGIN --do something END ELSE BEGIN --do something else END
73 sql  sql-server 

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.