标签: t-sql

SQL Server:存储过程尝试插入NULL?

Msg 515, Level 16, State 2, Procedure CreateParty, Line 16
Cannot insert the value NULL into column 'Id', table 'DEVIN.dbo.Party';
Run Code Online (Sandbox Code Playgroud)

列不允许空值.INSERT失败.该语句已终止.

(1 row(s) affected)
Run Code Online (Sandbox Code Playgroud)

我勒个去?我的桌子由

Id (Primary Key)
FirstName
LastName
Run Code Online (Sandbox Code Playgroud)

这是我的存储过程:

USE [DEVIN]
GO
/****** Object:  StoredProcedure [dbo].[CreateParty]    Script Date: 11/19/2010 16:59:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:      
-- Create date: 
-- Description: 
-- =============================================
ALTER PROCEDURE [dbo].[CreateParty]
    @firstname varchar(50),
    @lastname varchar(50)
    --@emailaddress varchar(100),
    --@zipcode char(5)
AS
BEGIN

    SET NOCOUNT ON;

    INSERT INTO …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server stored-procedures sql-server-2008

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

在SQL Server中以逗号分隔,垂直于水平,值的行

如何以逗号分隔值的形式获取行.

select [name] from sys.objects where type='u'
Run Code Online (Sandbox Code Playgroud)

我明白了:

DropDownList
SubActivityDetails
Report
Employees
UserMaster
ProjectMaster
Run Code Online (Sandbox Code Playgroud)

我要这个 :

DropDownList,SubActivityDetails,Report,Employees,UserMaster,ProjectMaster
Run Code Online (Sandbox Code Playgroud)

仅在一个查询中

而且在这种情况下

select [name],[object_id] from sys.objects where type='u'
Run Code Online (Sandbox Code Playgroud)

我明白了:

DropDownList    66099276
SubActivityDetails  197575742
Report  254623950
Employees   270624007
Run Code Online (Sandbox Code Playgroud)

但我想要这个:

  ["SubActivityDetails",197575742],
  ["Report",254623950],
  ["Employees",270624007]
Run Code Online (Sandbox Code Playgroud)

所以它类似于json.

并且会有大量数据,因此性能是一个主要问题!

哪个更好

情况1 :

DECLARE @Val VARCHAR(MAX)从sys.objects开始选择@Val = isnull(@val +','+ [name],[name]),
其中type ='u'SELECT @Val end

案例2:

DECLARE @Val VARCHAR(MAX)从sys.objects开始选择@Val = COALESCE(@val +','+ [name],[name]),
其中type ='u'SELECT @Val end

sql t-sql sql-server csv performance

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

UDF将字符串显示为十六进制代码

我在VARCHAR字段中有一些奇怪的字符,这阻止我将字段转换为INTEGER.我想调试这个,所以我需要一个将字符串转换为十六进制代码的UDF(就像在十六进制编辑器中一样),以便我可以看到我正在处理的字符.

我在哪里可以找到这样的功能或如何编写它?

sql t-sql user-defined-functions sql-server-2008

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

重新编号一组行

我有一个数据表,如下所示:

# the columns #
url
title
group
id_within_group

http://www.google.com
google
search engine
1

http://www.yahoo.com
yahoo
search engine
2

http://www.bing.com
bing
search engine
3

http://www.facebook.com
facebook
social media
1

http://www.twitter.com
twitter
social media
2
Run Code Online (Sandbox Code Playgroud)

如果我做

select * from table1 where group = "search engine"
Run Code Online (Sandbox Code Playgroud)

我会得到

http://www.google.com
google
search engine
1

http://www.yahoo.com
yahoo
search engine
2

http://www.bing.com
bing
search engine
3
Run Code Online (Sandbox Code Playgroud)

我希望能够删除任何这些行,但不知何故让它重新编号id_within_group.

因此,如果我从上面的3中删除第二个,它应该自动重新编号然后离开我

http://www.google.com
google
search engine
1

http://www.bing.com
bing
search engine
2
Run Code Online (Sandbox Code Playgroud)

这可能吗?

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

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

TSQL:如果语句在With语句中

我的问题是我想合并两个SP.产生的sp的骨架是:

 with Paging(RowNo, ID, Name, Description, LengthSeconds, Rating, Url, ThumbnailFileName, AddedAt) AS
    (
     (if(@SortType is null)
      begin
         ... select ... 
      end
      else 
      begin
        ... select...
      end
    )

   select * from Paging ... 
Run Code Online (Sandbox Code Playgroud)

如果在with声明中,我可以这样做吗?

sql t-sql sql-server

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

查询不同标签列表的最佳(简单而有效)方法?

有一个很大的表 - 博客(假设记录大于1万),结构如下:

Blog_ID  Title  Tag
----------------------
1        AAA    T1|T2|T3
2        BBB    T2|T4
3        CCC    T3|T1|T2|T6|
Run Code Online (Sandbox Code Playgroud)

..................

博客标签与'|'分开,绝对可以重复,我想写一个查询来获取所有不同的标签以及标签外观,结果如下:

Tags   Appearance Count
------------------------
T1     14
T2     35
T3     88
T4     45
Run Code Online (Sandbox Code Playgroud)

............

那么最好(简单而有效)的方法是什么呢?再一次限制,SQL Server 2000功能是首选,因为我的Web应用程序主机提供程序使用的是SQL Server 2000.

感谢任何帮助!!

sql t-sql sql-server sql-server-2000

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

TSQL代码格式化程序 - SQL Server 2005/2008

是否有可用于TSQL的免费代码格式化程序 - SQL Server 2005/2008.我发现很少有人要求在applet中在线复制粘贴代码.我正在寻找桌面版.尝试sad服务器的toad但免费软件不支持格式化.如果有人有任何解决方法请分享.

t-sql sql-server

0
推荐指数
2
解决办法
4265
查看次数

这个SELECT查询有什么问题?

Dim cmdSelect As New SqlCommand("SELECT DISTINCT [seat_remain] FROM [a1_ticket] WHERE serv_code =" & lab5.Text & "ORDER BY [Ticket_no] DESC", SQLData)
Run Code Online (Sandbox Code Playgroud)

t-sql vb.net asp.net ado.net

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

将日期插入SQL

我正在尝试在SQL表中插入日期,但是当程序运行时它会出现以下错误.

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

string dateReleased = DateReleasedDate.Value.ToString("YYYY-MM-DD");

string myQuery = "INSERT INTO GameTbl (gameName, genreID, players, online, dateReleased, dateAdded, developerID, publisherID, consoleID) VALUES('" 
                + GameNameTxt.Text + "', '" + GenreCombo.SelectedValue + "', '" + PlayersNUD.Value + "', '" + OnlineCombo.SelectedText + "', '"
                + dateReleased  + "', 'GETDATE()', '" + DeveloperCombo.SelectedValue + "', '" 
                + PublisherCombo.SelectedValue + "','" + ConsoleCombo.SelectedValue + "')";
Run Code Online (Sandbox Code Playgroud)

.net c# sql t-sql ado.net

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

主键更改强制外键更改

我有一个问题我正在使用现有的SQL Server 2008数据库:我需要偶尔更改表中某些现有记录的主键值.不幸的是,大约有30个其他表具有对该表的外键引用.

更改主键和相关外键的最优雅方法是什么?

我不是在可以更改现有密钥结构的情况下,因此这不是一个选项.此外,随着系统的扩展,更多表将与此表相关,因此可维护性非常重要.我正在寻找最优雅和可维护的解决方案,非常感谢任何帮助.到目前为止,我一直在考虑使用存储过程或触发器,但在向错误的方向前我想要一些建议.

谢谢!

sql t-sql sql-server sql-server-2008

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