标签: sql-server-2005

T-SQL:与字符串连接相反 - 如何将字符串拆分为多个记录

可能重复:
SQL中的拆分字符串

我在SQL中看到了几个与字符串连接相关的问题.我想知道你将如何处理相反的问题:将昏迷分隔的字符串拆分为数据行:

可以说我有桌子:

userTypedTags(userID,commaSeparatedTags) 'one entry per user
tags(tagID,name)
Run Code Online (Sandbox Code Playgroud)

并希望将数据插入表中

userTag(userID,tagID) 'multiple entries per user
Run Code Online (Sandbox Code Playgroud)

灵感来自数据库中没有哪些标签?

编辑

谢谢你的答案,实际上有一个值得接受,但我只能选择一个,而Cade Roux提出的递归解决方案对我来说似乎很干净.它适用于SQL Server 2005及更高版本.

对于早期版本的SQL Server,可以使用miies提供的解决方案.对于使用文本数据类型,wcm answer会很有帮助.再次感谢.

t-sql sql-server sql-server-2005

136
推荐指数
8
解决办法
17万
查看次数

SQL Server,将命名实例转换为默认实例?

我需要将SQL Server 2005的命名实例转换为默认实例.

有没有办法在没有重新安装的情况下执行此操作?


问题是,6个开发人员中有2个安装了命名实例.因此,它变成了一个痛苦的变化连接字符串为我们其他4人.我正在寻找阻力最小的路径,让我们重新回到我们的团队标准设置.

每个人都表示这将是一个太麻烦的事情,并且它会占用他们的开发时间.我认为这需要一些时间来解决,为了所有相关人员的最佳利益,我尝试梳理安装的配置应用程序并且没有看到任何内容,所以我认为对内部工作有更多了解的人会在这里.

sql-server named-instance sql-server-2005

135
推荐指数
3
解决办法
9万
查看次数

更改表添加多列ms sql

谁能告诉我以下查询中的错误在哪里?

ALTER TABLE Countries
ADD ( 
HasPhotoInReadyStorage  bit,
 HasPhotoInWorkStorage  bit,
 HasPhotoInMaterialStorage bit,
 HasText  bit);

ALTER TABLE Regions
ADD ( HasPhotoInReadyStorage  bit,
 HasPhotoInWorkStorage  bit,
 HasPhotoInMaterialStorage bit
 HasText  bit);

ALTER TABLE Provinces
ADD ( HasPhotoInReadyStorage  bit,
 HasPhotoInWorkStorage  bit,
 HasPhotoInMaterialStorage bit
 HasText  bit);


ALTER TABLE Cities
ADD ( HasPhotoInReadyStorage  bit,
 HasPhotoInWorkStorage  bit,
 HasPhotoInMaterialStorage bit
 HasText  bit);

Alter table Hotels
Add 
{
 HasPhotoInReadyStorage  bit,
 HasPhotoInWorkStorage  bit,
 HasPhotoInMaterialStorage bit,
 HasHotelPhotoInReadyStorage  bit,
 HasHotelPhotoInWorkStorage  bit,
 HasHotelPhotoInMaterialStorage bit,
 HasReporterData  bit,
 HasMovieInReadyStorage  bit,
 HasMovieInWorkStorage  bit,
 HasMovieInMaterialStorage bit
};
Run Code Online (Sandbox Code Playgroud)

我收到以下错误: …

sql-server-2005

132
推荐指数
5
解决办法
33万
查看次数

SQL Server字符串或二进制数据将被截断

我参与了一个数据迁移项目.当我尝试将数据从一个表插入另一个表(SQL Server 2005)时,我收到以下错误:

消息8152,级别16,状态13,行1
字符串或二进制数据将被截断.

源数据列与数据类型匹配,并且在目标表列的长度定义内,因此我不知道可能导致此错误的原因.

t-sql sql-server migration data-migration sql-server-2005

132
推荐指数
8
解决办法
43万
查看次数

实体框架和SQL Server视图

由于几个我无权谈论的原因,我们在Sql Server 2005数据库中定义了一个视图,如下所示:

CREATE VIEW [dbo].[MeterProvingStatisticsPoint]
AS
SELECT
    CAST(0 AS BIGINT) AS 'RowNumber',
    CAST(0 AS BIGINT) AS 'ProverTicketId',
    CAST(0 AS INT) AS 'ReportNumber',
    GETDATE() AS 'CompletedDateTime',
    CAST(1.1 AS float) AS 'MeterFactor',
    CAST(1.1 AS float) AS 'Density',
    CAST(1.1 AS float) AS 'FlowRate',
    CAST(1.1 AS float) AS 'Average',
    CAST(1.1 AS float) AS 'StandardDeviation',
    CAST(1.1 AS float) AS 'MeanPlus2XStandardDeviation',
    CAST(1.1 AS float) AS 'MeanMinus2XStandardDeviation'
WHERE 0 = 1
Run Code Online (Sandbox Code Playgroud)

我们的想法是,实体框架将基于此查询创建一个实体,但它会生成一个包含以下内容的错误:

警告6002:表/视图'Keystone_Local.dbo.MeterProvingStatisticsPoint'没有定义主键.已推断密钥,并将定义创建为只读表/视图.

并且它决定CompletedDateTime字段将是此实体主键.

我们正在使用EdmGen生成模型.有没有办法不让实体框架包含此视图的任何字段作为主键?

entity-framework sql-server-2005 primary-key .net-3.5 sql-view

131
推荐指数
5
解决办法
10万
查看次数

整理意味着什么?

整理在SQL中意味着什么,它的作用是什么?

mysql sql t-sql sql-server-2005

131
推荐指数
5
解决办法
12万
查看次数

启用S​​QL Server Broker需要很长时间

我有一个Microsoft SQL Server 2005,我尝试使用这些T-SQL为我的数据库启用Broker:

 SELECT name, is_broker_enabled FROM sys.databases 
 -- checking its status 0 in my case
 ALTER DATABASE myDatabase SET ENABLE_BROKER
Run Code Online (Sandbox Code Playgroud)

Alter Database需要很长的时间来处理.现在已超过半小时,它仍在运行.不确定它是否在等待其他东西或者我必须先清理任何东西,例如删除服务代理下的所有消息,合同,队列和服务?

sql-server-2005 service-broker

129
推荐指数
4
解决办法
12万
查看次数

从字符串解析可用的街道地址,城市,州,邮编

问题:我有一个来自Access数据库的地址字段,该数据库已转换为Sql Server 2005.此字段包含一个字段中的所有内容.我需要将地址的各个部分解析为规范化表中的相应字段.我需要为大约4,000条记录执行此操作,并且它需要是可重复的.

假设:

  1. 假设在美国的地址(现在)

  2. 假设输入字符串有时包含收件人(被发送者)和/或第二个街道地址(即B组)

  3. 国家可以缩写

  4. 邮政编码可以是标准的5位数或zip + 4

  5. 在某些情况下存在拼写错误

更新:在回答提出的问题时,标准并未普遍遵循,我需要存储个别值,而不仅仅是地理编码和错误意味着拼写错误(上面已修正)

样本数据:

  • AP Croll&Son 2299 Lewes-Georgetown Hwy,Georgetown,DE 19947

  • 11522 Shawnee Road,Greenwood DE 19950

  • 144 Kings Highway,SW Dover,DE 19901

  • 综合Const.服务2 Penns Way Suite 405 New Castle,DE 19720

  • Humes Realty 33 Bridle Ridge Court,Lewes,DE 19958

  • Nichols Excavation 2742 Pulaski Hwy Newark,DE 19711

  • 2284 Bryn Zion Road,Smyrna,DE 19904

  • VEI Dover Crossroads,LLC 1500 Serpentine Road,Suite 100 Baltimore MD 21

  • 580 North Dupont Highway Dover,DE 19901

  • PO Box 778 Dover,DE 19903

string parsing sql-server-2005 street-address

128
推荐指数
13
解决办法
14万
查看次数

如何检测存储过程是否已存在

我必须编写一个部署脚本,如果存储过程存在或不存在,该脚本将起作用.即如果它存在,那么我需要改变它,否则创建它.

我怎么能在sql中这样做.

我正在使用SQL Server 2005

sql stored-procedures sql-server-2005

127
推荐指数
6
解决办法
18万
查看次数

现实生活中的例子,何时在SQL中使用OUTER/CROSS APPLY

我一直在CROSS / OUTER APPLY和同事一起看,我们正在努力寻找现实生活中使用它们的例子.

我花了很多时间看看我何时应该使用Cross Apply而不是Inner Join?和谷歌搜索但主要(唯一)的例子似乎很奇怪(使用表中的行数来确定从另一个表中选择多少行).

我认为这种情况可能会受益于OUTER APPLY:

联系人表(每个联系人包含1条记录)通讯条目表(每个联系人可以包含n个电话,传真,电子邮件)

但是使用子查询,公共表表达式,OUTER JOINRANK()OUTER APPLY似乎都同样执行.我猜这意味着该方案不适用于APPLY.

请分享一些现实生活中的例子并帮助解释这个功能!

sql sql-server sql-server-2005 sql-server-2008

119
推荐指数
4
解决办法
16万
查看次数