Articles of tsql

EXEC sp_executesql con múltiples parámetros

¿Cómo pasar los parámetros a la instrucción EXEC sp_executesql correctamente? Esto es lo que tengo ahora, pero estoy recibiendo errores: alter PROCEDURE [dbo].[usp_getReceivedCases] — Add the parameters for the stored procedure here @LabID int, @RequestTypeID varchar(max), @BeginDate date, @EndDate date AS BEGIN — SET NOCOUNT ON added to prevent extra result sets from — interfering […]

No se puede encontrar la columna “dbo” o la función definida por el usuario o agregar “dbo.Splitfn”, o el nombre es ambiguo

Hai chicos, He utilizado la siguiente función dividida CREATE FUNCTION dbo.Splitfn(@String varchar(8000), @Delimiter char(1)) returns @temptable TABLE (items varchar(8000)) as begin declare @idx int declare @slice varchar(8000) select @idx = 1 if len(@String)0) insert into @temptable(Items) values(@slice) set @String = right(@String,len(@String) – @idx) if len(@String) = 0 break end return end y utilicé esta función […]

En lugar de desencadenar en SQL Server pierde SCOPE_IDENTITY?

Tengo una tabla donde creé un desencadenador INSTEAD OF para aplicar algunas reglas comerciales. El problema es que cuando inserto datos en esta tabla, SCOPE_IDENTITY() devuelve un valor NULL , en lugar de la identidad insertada real. Insertar código + Scope INSERT INTO [dbo].[Payment]([DateFrom], [DateTo], [CustomerId], [AdminId]) VALUES (‘2009-01-20’, ‘2009-01-31’, 6, 1) SELECT SCOPE_IDENTITY() Desencadenar: […]

FOR XML PATH (”): caracteres “especiales” que escapan

Este código básicamente traduce los caracteres basados ​​en la posición en una cadena al personaje en la misma posición en otra cadena y se ejecuta para todas las filas de la tabla. Cuando ejecuto esto (versión simplificada): DECLARE @R char(40) DECLARE @U char(40) SET @R=’ abcdefghijklmnopqrstuvwxyz!@#$%^&*()_+’+char(181) SET @U=REVERSE(@R) DECLARE @TestTable TABLE (RowID int identity(1,1) primary […]

¿Cómo puedo detectar y vincular cambios entre valores de fila en una tabla SQL?

Tengo una tabla que registra valores a lo largo del tiempo, similar a lo siguiente: RecordId Time Name ======================== 1 10 Running 2 18 Running 3 21 Running 4 29 Walking 5 33 Walking 6 57 Running 7 66 Running Después de consultar esta tabla, necesito un resultado similar al siguiente: FromTime ToTime Name ========================= […]

Pivote de columna múltiple en T-SQL

Estoy trabajando con una tabla en la que hay varias filas que necesito pivotar en columnas. Entonces, el pivote es la solución perfecta para esto, y funciona bien cuando todo lo que necesito es un campo. Necesito devolver varios campos basados ​​en el pivote. Aquí está el pseudo código con detalles eliminados: SELECT field1, [1], […]

Ejemplo de fusión T SQL necesario para ayudar a la comprensión

El seguimiento: MERGE dbo.commissions_history AS target USING (SELECT @amount, @requestID) AS source (amount, request) ON (target.request = source.request) WHEN MATCHED THEN UPDATE SET amount = source.amount WHEN NOT MATCHED THEN INSERT (request, amount) VALUES (source.request, source.amount); desde https://stackoverflow.com/a/2967983/857994 es una forma bastante ingeniosa de insertar / actualizar (y eliminar con algún trabajo adicional). Me resulta […]

TSQL: crea una vista que accede a múltiples bases de datos

Tengo un caso especial, por ejemplo, en la tabla ta de la base de datos A , almacena todos los productos que compro table ta( id, name, price ) en la tabla tb en la base de datos B , contiene todo el producto que la gente puede comprar table tb( id, name, price …. […]

Ignorando un parámetro NULL en T-SQL

Quiero poder pasar una lista de parámetros e ignorar los que son NULL. Para que la consulta esté en efecto pretendiendo que el filtro no está allí e ignorándolo. Lo estaba haciendo así: (@thing IS NULL or Thing=@thing) ¿Es correcto, y si es así, funcionaría mal? Parece ser mucho más lento que construir el SQL […]

¿Cómo llamar al procedimiento almacenado en una vista?

¿Cómo llamaría a un procedimiento almacenado que devuelve datos en una vista? ¿Esto es posible?