标签: sql-server-2012

使用和if exists语句验证sql中的值?

我仍然对一切都很新,现在我正在尝试验证我的输入SQL.

我的powershell脚本允许我查看一些我想要在选定数据库中输入的变量.我需要的是检查条目是否已存在.如果它存在,我的脚本将停止.

脚本部分:

if exists(select * from [DB1].dbo.[table1]
            where Name = '$variable1')

    "stop script but how?"

else

    insert into ......
Run Code Online (Sandbox Code Playgroud)

所以我需要一些东西来代替"停止脚本但是如何?" 不知何故 :)

sql validating sql-server-2012

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

解析循环和多个级联路径

我有一组表,我正在尝试为表设置正确的关系.浓缩版本如下.

Users
    ID INT NOT NULL

Activities
    ID INT NOT NULL
    UserID INT NULL

Logs
    ID INT NOT NULL
    UserID INT NULL
    ActivityID INT NULL
Run Code Online (Sandbox Code Playgroud)

我有与关系UserID从两个ActivitiesLogsUsers.IDActivityID与回Activities.ID.

我已设置Activities.UserIDLogs.UserID在删除时设置null,并在更新时级联.当我尝试将相同的更新和删除功能设置为Logs.ActivityID但我得到关于"可能导致循环或多个级联路径"的错误时,我的问题就来了.我的问题是,Logs需要一个用户,并且不需要Activity,但是,如果和更改Logs,确实Activity需要更新Activity.

我有什么方法可以不涉及两个单独的Logs表,并且不涉及手动更新Logs表.这在SQL Server 2012中甚至可能吗?

t-sql sql-server-2012

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

标识列未生成正确的ID

我有一张桌子:

CREATE TABLE [dorkOrder] ( 
    [doId] int identity(1,1)  NOT NULL,
    [shId] int NOT NULL,
    [mopId] int NOT NULL,
    [dorkOrderNo] varchar(20) NULL,
    [doDate] date NULL
);
Run Code Online (Sandbox Code Playgroud)

现在,当我向其中插入数据而不doId是以这种方式1,2,3,4,5,6,7生成时,它将以下面的奇怪方式生成它:

1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
2002
2003
2004
2005
2006
2007
2008
2013
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题.

sql sql-server sql-server-2012

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

进入时的TSQL计数案例

我在这里遇到一些逻辑问题.试图得到S.ID不在我的子查询中的行数.

COUNT(CASE WHEN S.ID IN
(SELECT DISTINCT S.ID FROM...) 
THEN 1 ELSE 0 END)
Run Code Online (Sandbox Code Playgroud)

我收到了错误:

Cannot perform an aggregate function on an expression containing an aggregate or a subquery.
Run Code Online (Sandbox Code Playgroud)

如何解决这个或替代方案?

sql t-sql sql-server sql-server-2012

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

MVC Linq查询和MS SQL Server

我的问题是相当简单的,如何限制传递给View的列?

通常在编写SQL时,SELECT语句将指定所需的列以及所需的表,因为到目前为止,我对Linq的使用涉及到这样的查询:

var navigationModel = (from m in db.Navigations where (m.Main == true) orderby m.Position select m);
Run Code Online (Sandbox Code Playgroud)

因此,这将显示以下类中标识的所有列:

public partial class Navigation
{
    public int Id { get; set; }
    public string Title { get; set; }
    public Nullable<int> Position { get; set; }
    public bool Main { get; set; }
    public string Action { get; set; }
    public string Controller { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

因此,上面的Linq查询效率不高,因为我只想要列Title,Action和Controller.

有人可以告诉我如何过滤传递给视图的数据吗?

任何帮助将非常感激 :-)

c# linq sql-server-2012 asp.net-mvc-5

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

T-SQL使用RAND(种子)将结果的顺序随机化

我使用以下语句(以缩短的版本为例)从Microsoft SQL Express 2012数据库获取结果:

SELECT id, name, city 
FROM tblContact 
ORDER BY RAND(xxx)
Run Code Online (Sandbox Code Playgroud)

并注入该xxx部分的会话中存储的种子,以使结果对于给定会话始终是随机的(因此,在翻阅结果时,用户不会看到重复项)

问题:无论种子是什么,结果都以相同顺序返回

我也尝试过这个:

SELECT id, name, city, RAND(xxx) AS OrderValue 
FROM tblContact 
ORDER BY OrderValue
Run Code Online (Sandbox Code Playgroud)

两者都给出相同的结果(出乎意料的结果)-我使用错误吗?

sql t-sql random sql-server-2012

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

SQL显示其他类别中不存在的项目

我有一个Tier,Category和Items的表.对于Tier = 2,每个类别应具有相同的项目数.我想显示每个类别中缺少的项目.

这是一个示例表:

IF OBJECT_ID('tempdb..#Items') IS NOT NULL DROP TABLE #Items
CREATE TABLE #Items (
    Tier        int,
    Category    nvarchar(25),
    Item        nvarchar(25)
)

INSERT INTO #Items
SELECT '2', 'CategoryA',    'Item1'
UNION ALL
SELECT '2', 'CategoryA',    'Item2'
UNION ALL
SELECT '2', 'CategoryA',    'Item3'
UNION ALL
SELECT '2', 'CategoryB',    'Item1'
UNION ALL
SELECT '2', 'CategoryB',    'Item3'
UNION ALL
SELECT '2', 'CategoryC',    'Item1'
UNION ALL
SELECT '2', 'CategoryC',    'Item2'
UNION ALL
SELECT '2', 'CategoryC',    'Item3'
UNION ALL
SELECT '2', 'CategoryC',    'Item4'

SELECT
    Tier, …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2012

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

使用linQ执行简单的选择

我正在使用VS2013与SQL Server 2012,VB.net.我正在开发一个Web应用程序.

在我提出问题之前,我先说这个问题对于这个董事会来说可能非常简单,但我无法通过谷歌搜索找到这个.

我有一个SQL表,其中包含一些数据,两列(settingName(nvarchar)和settingValue(float)).我想做以下但使用LinQ.

SELECT Settingvalue
FROM Settings
WHERE settingName = 'Name1'
Run Code Online (Sandbox Code Playgroud)

到目前为止我在VB中有以下内容.

    Dim db As New GMConnectionDataContext

    Dim result = From a In db.Settings
                 Where a.SettingName = "Name1"
                 Select a.SettingValue


    txtEgdon.Text = result
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为结果是double,但是如果我将.tostring添加到结果,那么文本框中的输出是完整的linq查询,而不是我正在寻找的结果.

我只需要理解这个简单的查询,这样我就可以构建它,但是我无法得到它,并且提供的任何帮助都会很棒.

sql linq vb.net sql-server-2012

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

在SQL Server层次结构ID中展平树路径

我正在使用SQL Hierarchy数据类型来为我的应用程序中的分类结构建模.分类法可以在不同级别具有相同的名称

在此输入图像描述

在设置过程中,需要通过Excel工作表上传这些数据.

在插入任何节点之前,我想检查特定路径上的节点是否已经存在,这样我就不会复制这些条目.检查节点@特定绝对路径是否已存在的最简单方法是什么?

例如,在"银行2"下插入说"零售"之前,我应该可以检查"/银行2 /零售"是否存在

有没有办法提供整个树结构的展平表示,以便我可以检查绝对路径然后继续?

在此输入图像描述

sql sql-server hierarchyid sql-server-2008 sql-server-2012

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

存储过程中的ColdFusion 10错误

在.CFC文件中,在CF函数内和CFargument标记中.

    <cfscript>
        var sp=new storedproc();
        sp.setDatasource(variables.datasource);
        sp.setProcedure("storedProcedure_INSERT");
        sp.addParam(cfsqltype="cf_sql_integer",type="in",value=arguments.one);
        sp.addParam(cfsqltype="cf_sql_integer",type="in",value=arguments.two);
        sp.addParam(cfsqltype="cf_sql_integer",type="in",value=arguments.three);
        sp.addParam(cfsqltype="cf_sql_integer",type="in",value=arguments.four);
        sp.addProcResult(name="results",resultset=1);
        //writeDump(sp);break;  //This dump is reached
        var spObj=sp.execute(); //blows up here; this is never reached
        writeDump(spObj);break; //This is never reached, either.
        var spResults=spObj.getProcResultSets().results;
Run Code Online (Sandbox Code Playgroud)

任何能告诉我为什么sp.execute()爆炸消息的人都会发出闪亮的光芒

"Cannot find results key in structure.

The specified key, results, does not exist in the structure."
Run Code Online (Sandbox Code Playgroud)

我曾经多次使用这个伪代码,过去可能会使用它,而且从来没有这样做过.我已连接到MSSQL Server 2012数据库,CF Admin中的所有内容都是板球,其他SP正常运行.堆栈跟踪甚至根本不包含任何MY代码o_O

错误发生在C:/ColdFusion10/cfusion/CustomTags/com/adobe/coldfusion/base.cfc:cline 491来自C:/ColdFusion10/cfusion/CustomTags/com/adobe/coldfusion/storedproc.cfc:line 142来自//hq-devfs/development$/websites/myProject/cfc/mySOAPWSDLs.cfc:line 123

如果我再尝试粘贴,那么SO就会爆炸.谷歌......没有帮助._.

sql-server coldfusion stored-procedures sql-server-2012 coldfusion-10

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