Tag: tsql

对select中的每一行执行insert操作?

我有一些我需要插入到多个表中的logging。 每隔一列将是一个常数。 可怜的伪代码下面 – 这是我想要做的: create table #temp_buildings ( building_id varchar(20) ) insert into #temp_buildings (building_id) VALUES ('11070') insert into #temp_buildings (building_id) VALUES ('11071') insert into #temp_buildings (building_id) VALUES ('20570') insert into #temp_buildings (building_id) VALUES ('21570') insert into #temp_buildings (building_id) VALUES ('22570') insert into property.portfolio_property_xref ( portfolio_id , building_id , created_date , last_modified_date ) values […]

TSQL将用户映射到数据库

所以我不能够使用企业pipe理器来做到这一点…如果我是我甚至不会问这个问题。 所以我想知道是否有通过TSQL的方式来执行一个命令,将用户映射到特定的数据库,并授予他们“所有者”的权限。 谢谢…

在使用SQL Server的varchar列中查找非ASCII字符

如何使用SQL Server返回具有非ASCII字符的行? 如果你能显示如何做一列将是很好的。 我现在正在做这样的事情,但它不工作 select * from Staging.APARMRE1 as ar where ar.Line like '%[^!-~ ]%' 额外的功劳,如果它可以跨越一个表中的所有 varchar列,这将是优秀的! 在这个解决scheme中,最好返回三列: 该logging的身份字段。 (这将允许整个logging与另一个查询进行审查。) 列名称 具有无效字符的文本 Id | FieldName | InvalidText | —-+———–+——————-+ 25 | LastName | Solís | 56 | FirstName | François | 100 | Address1 | 123 Ümlaut street | 无效的字符将会在SPACE(32 10 )到~ (127 10 )

如何获得在SQL中领先0的月份和date? (例如9 => 09)

DECLARE @day CHAR(2) SET @day = DATEPART(DAY, GETDATE()) PRINT @day 如果今天是十二月九日,上面会打印“9”。 我想打印“09”。 我怎么去做这个?

将YYYYMM转换为MMMYY

我有一段时间201604(nvarchar)。 有没有办法将201604转换成APR16 ?

整数在SQL Server T-SQL中的最大值常量?

在T-SQL中是否有像在其他语言中提供数据types的最大和最小值范围的常量? 我有一个代码表,其中每行都有一个上限和下限范围列,我需要一个条目表示一个范围,其中上限是一个int可以容纳的最大值(有点像hackish infinity)。 我宁愿不要硬编码,而是使用像SET UpperRange = int.Max

在Sql Server中计算

我试图执行下面的计算 样本数据: CREATE TABLE #Table1 ( rno int identity(1,1), ccp varchar(50), [col1] INT, [col2] INT, [col3] INT, col4 as [col2]/100.0 ); INSERT INTO #Table1 (ccp,[col1],[col2],[col3]) VALUES ('ccp1',15,10,1100), ('ccp1',20,10,1210), ('ccp1',30,10,1331), ('ccp2',10,15,900), ('ccp2',15,15,1000), ('ccp2',20,15,1010) +—–+——+——+——+——+———-+ | rno | ccp | col1 | col2 | col3 | col4 | +—–+——+——+——+——+———-+ | 1 | ccp1 | 15 | 10 […]

如何抑制SQL Server中另一个存储过程调用的存储过程的SELECT输出?

我不是在说做一个“SET NOCOUNT OFF”。 但我有一个存储过程,我用它来插入一些表中的数据。 这个过程创build一个XML响应string,让我给你一个例子: CREATE PROCEDURE [dbo].[insertSomeData] (@myParam int) AS DECLARE @reply varchar(2048) … Do a bunch of inserts/updates… SET @reply = '<xml><big /><outputs /></xml>' SELECT @reply GO 所以我把一个使用这个SP的脚本放在一起,而xml的“输出”变得太多了(它已经崩溃了我的盒子一次)。 有没有办法抑制或redirect从此存储过程生成的输出? 我不认为修改这个存储过程是一个选项。 谢谢。 我想我应该澄清。 上面的这个SP被我编写的T-SQL Update脚本调用,要通过企业工作室pipe理器等来运行。 这不是我曾经写过的最优雅的SQL(一些psuedo-sql): WHILE unprocessedRecordsLeft BEGIN SELECT top 1 record from updateTable where Processed = 0 EXEC insertSomeData @param = record_From_UpdateTable […]

使用select语句传递表值函数中的参数

我创build了一个表返回值函数返回给我一个表。 以下是我的function的调用 SELECT * FROM dbo.[StateFixedTaxesCalculation](3020,16,1,1006) 它的工作对我来说OK,现在我想在一个select语句中使用这个函数调用,所以我可以传递16这基本上是employeeIddynamic。 所以我决定使用内部连接与该函数返回的表。 喜欢这个 SELECT * FROM Employee as E INNER JOIN dbo.[StateFixedTaxesCalculation](3020,16,1,1006) as TC ON TC.EmployeeId=E.EmployeeId 但现在我怎么能通过16作为所有employeeId一个接一个的dynamic值。

无法在视图“View_Table_Name”上创build索引,因为该视图不是模式绑定的

我在我的存储过程(SQL-Server)中使用视图。 为了提高性能,我试图创build该视图的INDEX。 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER VIEW VW_Table_Name AS SELECT Col1,Col2,Col3 FROM Table_Name GO CREATE UNIQUE CLUSTERED INDEX Index_Name ON [VW_Table_Name](Col1) GO 在这里,我得到了像这样的错误 Msg 1939,Level 16,State 1,Line 1无法在视图“VW_FML”上创build索引,因为该视图不是模式绑定的。 我们可以在SQL Server中创build视图索引吗?