标签: sql-server-2012

哪个是较小的存储:身份主键还是序列主键?

哪个是较小的存储:身份主键还是序列主键?我所说的序列的一个例子如下.

CREATE SEQUENCE TestSeq
 AS INTEGER
 START WITH 1
 INCREMENT BY 1;

CREATE TABLE Tab1
(tab1_ID INTEGER DEFAULT NEXT VALUE FOR TestSeq PRIMARY KEY,
 other_stuff VARCHAR(15) NOT NULL);
Run Code Online (Sandbox Code Playgroud)

奖励:任何推荐的序列链接也会受到欢迎.我试图找出那里的地方与身份.

sql sql-server sql-server-2012

0
推荐指数
1
解决办法
31
查看次数

是否可以在SQL Server计算列中使用Case语句

我有一个包含两个日期列的表,都允许空值.

如果FileDate不为null,则AsOfDate需要等于(FileDate - Offset),其中Offset是一个默认为零的整数列.

这是我的表格def:

CREATE TABLE [import].[CMAR_GLXXXX](
[FileDate] [date] NULL,
[LoadDTM] [date] NULL,
[AsOfDate] [date] NULL,
[AccountNumber] [varchar](50) NOT NULL,
[CostCenter] [varchar](50) NOT NULL,
[OffSet] [int] default (0) NOT NULL,
[Value] [decimal](10,2) NOT NULL
 ) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下内容:

(case when [File] IS NULL then NULL else dateadd(day,(-1 * [Offset]),[FileDate]) end)
Run Code Online (Sandbox Code Playgroud)

遗憾的是,计算出的列错误对话框在对表达式进

有任何想法吗?

t-sql sql-server sql-server-2012

0
推荐指数
1
解决办法
1230
查看次数

加密密码列

我有一个看起来像这样的数据库表(简化):

CREATE TABLE  User 
(
     ID int, 
     UserName varchar(100), 
     password varchar(100), 
     primary key (ID)
)
Run Code Online (Sandbox Code Playgroud)

我想加密password列.我已经研究过TDS(透明数据加密),看起来你可以在文件级加密数据库和列.

如果我使用这种方法,那么如果人们运行以下查询,他们会看到密码:

select password from [User]
Run Code Online (Sandbox Code Playgroud)

该数据库在SQL Server 2012 Enterprise Edition上运行.

sql sql-server sql-server-2012

0
推荐指数
1
解决办法
2047
查看次数

LINQ中的案例和IIF

我将如何得到相同的结果LINQ,ASP.Net如下面的SQL查询

如果

select *, case 
        when 
            gender = 1 then 'Male' else 'Female' end 
        as gen from info
Run Code Online (Sandbox Code Playgroud)

在iif

select iif(gender = 1, 'Male', 'Female') as gen, * from info 
Run Code Online (Sandbox Code Playgroud)

我尝试使用建议,但抛出错误

InfoDataContext db = new InfoDataContext();

            var data = from y in db.infos
                       db.infos.Select(i => new info{info = i, i.gender == 1 ? "Male" : "Female"}).ToList()
                       select y;

            GridView1.DataSource = data;
            GridView1.DataBind();
Run Code Online (Sandbox Code Playgroud)

还有一个是,第一个查询将新结果作为表中的最后一列返回,第二个查询作为表中的第一列返回.如何gengender柱重新排列或替换色谱柱

c# linq asp.net sql-server-2012

0
推荐指数
1
解决办法
1978
查看次数

SQL Server:如何通过删除零来返回舍入值

我有第01列中的值,我希望将其转换为第02列中的值,从结尾删除所有零.有没有办法在SQL服务器中执行此操作?

Column 01    Column 02 
20100000   201
29050000   2905
Run Code Online (Sandbox Code Playgroud)

谢谢你的期待.

sql sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012

0
推荐指数
1
解决办法
49
查看次数

SSIS包通过可用性组连接到只读数据库

我试图连接到可用性组中的辅助服务器,以将数据库的只读版本与SSIS包中的OLE DB连接一起使用,但似乎无法做到这一点。这么简单。可以做到吗?

编辑:忘记添加,我们希望能够使用项目参数来传递连接字符串。

ssis sql-server-2012 alwayson

0
推荐指数
1
解决办法
2268
查看次数

0
推荐指数
1
解决办法
41
查看次数

过滤条件

我有这张桌子

User        | SecretId | Status
warheat1990 |     NULL |    REV
warheat1990 |     NULL |    COM
warheat1990 |        1 |    REV
warheat1990 |        1 |    COM
Run Code Online (Sandbox Code Playgroud)

我想过滤掉数据(Status = REV和SecretId IS NOT NULL合并),所以最终结果将是

User        | SecretId | Status
warheat1990 |     NULL |    REV
warheat1990 |     NULL |    COM
warheat1990 |        1 |    COM
Run Code Online (Sandbox Code Playgroud)

我的查询

SELECT * FROM TABLE WHERE User = 'warheat1990' AND (Status <> 'REV' AND SecretId IS NULL)
Run Code Online (Sandbox Code Playgroud)

但它没有用,因为它只给了我这条ROW.

User        | SecretId | Status
warheat1990 |     NULL |    COM …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2012

0
推荐指数
1
解决办法
60
查看次数

SQL Server中Parse和Convert之间的区别

我有这样的查询

SELECT ISDATE('18 Mar 2016 18:57:35 GMT');
Run Code Online (Sandbox Code Playgroud)

它当然返回0,因为字符串不是有效的日期格式,并且在我运行时再次出于同样的原因

SELECT CONVERT(DATETIME, '18 Mar 2016 18:57:35 GMT')
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

从字符串转换日期和/或时间时转换失败.

但我不明白的是,为什么我可以用PARSE功能做同样的事情.

SELECT PARSE('18 Mar 2016 18:57:35 GMT' AS DATETIME )
Run Code Online (Sandbox Code Playgroud)

我得到2016-03-18 14:57:35.000了结果.

任何人都可以告诉我如何PARSECONVERT不同,为什么我能够运行查询PARSE而不是与CONVERT?谢谢

sql t-sql sql-server-2012

0
推荐指数
1
解决办法
916
查看次数

SQL REPLACE带有NULL意外结果

我想将某些varchar替换为NULL.我直接用过

SELECT REPLACE('abc', '1', NULL)
Run Code Online (Sandbox Code Playgroud)

即对于每个输入varchar,如果I内至少有一个'1',则整个输入变为NULL(例如'123'为NULL,'abc-1'为NULL等)

甚至在没有匹配的情况下(例如不需要替换),我的烦恼是什么,它仍然给我NULL.例如,运行上面的语句会给你NULL.

为什么?任何解决方法?

使用"why"组件和一个简单的解决方法来挑选答案.

sql t-sql sql-server sql-server-2008-r2 sql-server-2012

0
推荐指数
1
解决办法
146
查看次数