小编KM.*_*KM.的帖子

使用SQL克隆数据库中表示的树结构

给定一个表示分层树结构并具有三列的表

  1. ID(主键,非自动增量)
  2. ParentGroupID
  3. someValue中

我知道该分支中节点最低的节点,我想将其复制到具有相同数量的父节点的新分支,这些父节点也需要克隆.

我正在尝试编写单个SQL INSERT INTO语句,该语句将使具有相同main的每一行的副本成为新GroupID的第一部分GroupID.

示例开始表:

ID | ParentGroupID | SomeValue
------------------------
1  |      -1       |    a
2  |       1       |    b
3  |       2       |    c
Run Code Online (Sandbox Code Playgroud)

我运行一个简单的INSERT INTO语句后的目标:

ID | ParentGroupID | SomeValue
------------------------
1  |      -1       |    a
2  |       1       |    b
3  |       2       |    c
4  |      -1       |    a-cloned
5  |       4       |    b-cloned
6  |       5       |    c-cloned
Run Code Online (Sandbox Code Playgroud)

最终的树结构

+--a (1)
|  +--b (2)
|     +--c (3)
|
+--a-cloned (4) …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2005

9
推荐指数
1
解决办法
2709
查看次数

困难的HTML,JavaScript,CSS网格页面

仅供参考,这是我正在研究的简化/通用示例.我只是在寻找可以使这项工作的HTML,JavaScript和/或CSS.我更喜欢这可以在没有任何javascript库的情况下完成.此外,将根据从数据库加载的数据构建页面.这只需要在较新的IE/Firefox浏览器中工作.

我需要创建一个网页,其上有一个固定大小的"单元格"网格,每个单元格将是150像素乘150像素.这是样本6x3网格,但我的网格大小不同(4x10或3x5等,根据数据库数据):

-------------------------------------
|     |     |     |     |     |     |
|     |     |     |     |     |     |
|     |     |     |     |     |     |
-------------------------------------
|     |     |     |     |     |     |
|     |     |     |     |     |     |       6x3 grid of "cells"
|     |     |     |     |     |     |
-------------------------------------
|     |     |     |     |     |     |
|     |     |     |     |     |     |
|     |     |     |     |     |     |
-------------------------------------
Run Code Online (Sandbox Code Playgroud)

这些单元格中的每一个都需要以下内容:

1)包含150像素乘150像素的"主"图像.这个图像需要在浏览器中更改,如果可能的话,希望使用CSS sprites.我想将所有这些图像粘贴到一个文件中,并将其缩小到每个单元格中所需的内容.

2)当鼠标悬停在"Cell"上时,将显示可点击图像的叠加.在下面的示例中,我使用字母,但图像不是字母,更像是图标.这些点击需要能够运行不同的每个图像javascript函数(因此单击"A"图像将运行函数A,而单击"F"将运行函数F等).图像将取决于数据库信息,因此对于不同的单元格,将包括一些而不包括其他单元格.他们在牢房中的位置将始终是固定和控制的.以下是单个单元格在顶部的图像(字母)看起来的样子:

--------- …
Run Code Online (Sandbox Code Playgroud)

html javascript css grid

9
推荐指数
1
解决办法
1355
查看次数

如何从命令行附加SQL Server数据库

是否可以输入命令行命令(如在批处理文件中)将分离的数据库附加到SQL Server,而不是打开管理工作室并在那里进行操作?

sql-server command-line sql-server-2008

8
推荐指数
1
解决办法
2万
查看次数

存储过程和实体框架4.0中的表值参数

我在SQL Server 2008中有一个名为"GetPrices"的存储过程,其中有一个名为"StoreIDs"的表值参数.

这是我为这个TVP创建的类型:

CREATE TYPE integer_list_tbltype AS TABLE (n int)
Run Code Online (Sandbox Code Playgroud)

我想从我的实体框架中调用SP.但是当我尝试将存储过程添加到EDM时,我收到以下错误:

函数'GetPrices'在参数索引2处具有参数'StoreIDs',其具有不受支持的数据类型'表类型'.该功能被排除在外.

这有什么解决方法吗?有什么想法吗?

法比奥

sql-server stored-procedures sql-server-2008 table-valued-parameters entity-framework-4

8
推荐指数
1
解决办法
7478
查看次数

SQL错误:关键字"结束"附近的语法不正确

需要有关此SQL Server 2000过程的帮助.问题变得困难,因为我正在通过Oracle SQL Developer测试程序.

我正在运行使用Varchar格式的新数字序列迭代列的过程,以便为那些具有空值的人.

但我一直收到错误,所以a)我可能做错了方法b)由于使用的版本语法不正确.我主要是Oracle用户.

我一直得到的错误:SQL Error: Incorrect syntax near the keyword 'End'.这没有足够的帮助解决它.本End是指在程序的最后"终结".

任何帮助将不胜感激.

这是程序.

ALTER PROCEDURE [dbo].[OF_AUTOSEQUENCE] @JvarTable Varchar(250), @varColumn Varchar(250), @optIsString char(1), @optInterval int AS
/*
Procedure   OF_AUTOSEQUENCE
Created by  Joshua [Surname omitted]
When        20100902

Purpose     To fill up column with new sequence numbers
Arguments   varTable    - Table name
            varColumn   - Column name
            optIsString - Option: is it string or numeric, either use T(rue) or F(alse)
            optInterval - Steps in increment in …
Run Code Online (Sandbox Code Playgroud)

sql-server stored-procedures sql-server-2000 dynamic-sql syntax-error

8
推荐指数
1
解决办法
4万
查看次数

生成非均匀随机数

你能告诉我任何产生非均匀随机数的方法吗?
我正在使用Java,但代码示例可以是您想要的任何内容.

一种方法是通过将两个均匀随机数加在一起(即滚动2个骰子)来创建偏斜分布.

random artificial-intelligence

7
推荐指数
2
解决办法
4449
查看次数

SQL分组差距

在SQL Server 2005中,我有一个表格,其数据如下所示:

WTN------------Date  
555-111-1212  2009-01-01  
555-111-1212  2009-01-02  
555-111-1212  2009-01-03  
555-111-1212  2009-01-15  
555-111-1212  2009-01-16  
212-999-5555  2009-01-01  
212-999-5555  2009-01-10  
212-999-5555  2009-01-11 
Run Code Online (Sandbox Code Playgroud)

从这个我想提取WTN,Min(日期),Max(日期)扭曲是我想在日期中有间隙时也要打破,所以从上面的数据来看,我的结果应该是这样的:

WTN------------ MinDate---- MaxDate  
555-111-1212   2009-01-01  2009-01-03  
555-111-1212   2009-01-15  2009-01-16  
212-999-5555   2009-01-01  2009-01-01  
212-999-5555   2009-01-10  2009-01-11  
Run Code Online (Sandbox Code Playgroud)
  1. 如何在SQL Select/Group By中执行此操作?
  2. 这可以在没有列表或列表的情况下完成,我想要识别我想要识别的空白(这里的日期)吗?

sql t-sql sql-server sql-server-2005

7
推荐指数
1
解决办法
759
查看次数

我们可以从存储过程返回null

我们可以从存储过程返回null值.我不想使用collase或isnull.我想在前端捕获NULL.可能吗 ?

编辑:

我在用 Sql Server 2005

例如.在哪里我想用

CREATE PROCEDURE [Authentication].[spOnlineTest_CheckLogin]

  @UserName  NVARCHAR(50)
AS
 BEGIN TRY
  BEGIN TRAN
                    COMMIT TRAN
     RETURN NULL
        END TRY
Run Code Online (Sandbox Code Playgroud)

错误 'spOnlineTest_CheckLogin'过程尝试返回NULL状态,这是不允许的.将返回状态0.消息0,级别11,状态0,行0当前命令发生严重错误.结果(如果有的话)应该被丢弃.

t-sql database sql-server stored-procedures sql-server-2005

7
推荐指数
2
解决办法
1万
查看次数

Sql Server按特定顺序显示项目

我有一个项目清单

ItemName制造商TopSalesUnit

Item1     A             100   
Item2     A             80                      
Item3     A             60
Item4     B             70   
Item5     B             50   
Item6     B             30
Item7     C             10       
Item8     C             05
Run Code Online (Sandbox Code Playgroud)

我希望订购记录,以便首先显示最高的TopSalesUnit项目,然后显示来自不同制造商的下一个最高项目,然后显示来自第三个制造商的下一个最高项目,等等:

ItemName制造商TopSalesUnit

Item1       A             100    
Item4       B             070
Item7       C             010 
Item2       A             080
Item5       B             050 
Item8       C             005   
Item3       A             060 
Item6       B             030 
Run Code Online (Sandbox Code Playgroud)

如何在T-SQL中编写查询来实现呢?

sql t-sql sql-server sql-server-2005

6
推荐指数
1
解决办法
279
查看次数

具有选择语句,执行动态SQL和返回值的表

我有一个select语句,它返回一个充满SELECT语句的表(它遍历每个表中的每一列,并创建一个select来查找该列是否包含任何错误数据).

我需要将此表充满SELECT语句,执行它们,并查看它们是否返回行.如果count(*)> 0,那么我想打印出一些数据.

我以为我必须使用光标,但我不知道如何实现这一目标.

这是我的代码来获取坏数据的计数.

SELECT 'SELECT count(*),  '' '+sysobjects.name + ' - ' + syscolumns.name + 
    ' '' FROM ['
         +sysobjects.name + '] WHERE UNICODE(SUBSTRING(['+syscolumns.name+'],Len(['+syscolumns.name+']),1)) = 0' 
         FROM sysobjects 
    JOIN syscolumns ON sysobjects.id = syscolumns.id
    JOIN systypes ON syscolumns.xtype=systypes.xtype
   WHERE sysobjects.xtype='U' and systypes.name IN ('varchar', 'nvarchar')
ORDER BY sysobjects.name,syscolumns.colid
Run Code Online (Sandbox Code Playgroud)

这将返回一个包含以下行的表:

SELECT count(*),  ' All_MW_Users - LastName ' FROM [All_MW_Users] WHERE UNICODE(SUBSTRING([LastName],Len([LastName]),1)) = 0
Run Code Online (Sandbox Code Playgroud)

我需要执行这个select,如果count(*)> 0,则打印第二列. 除非有数据要显示,否则我不想在结果或消息中显示任何内容.

sql sql-server sql-server-2005 dynamic-sql

6
推荐指数
1
解决办法
8639
查看次数