'IN' 用户定义 Table 类型中的关键字
'IN' Keyword in User Defined Table Types
我在我的一个存储过程中使用用户定义的 table 类型发送大量邮政编码。以下是我的存储过程
CREATE Procedure [PrdCtlg].[sp_GetZipByCodes](@dtZip PrdCtlg.ZipType ReadOnly)
as
begin
Select z.pkZipId, z.ZipCode, z.fkCityId from prdctlg.zip z where zipcode in
(select zip from @dtZip )
end
但它returns没什么。任何帮助将不胜感激。
我认为这段代码可能对您有所帮助,我们不应该创建以 "Sp_" 为前缀的存储过程名称,
因为所有系统定义的存储过程都是按照 sql 规范开始的
使用 Like "usp_ProcName"
IF EXISTS
(SELECT 1
FROM INFORMATION_SCHEMA.ROUTINES
WHERE SPECIFIC_NAME = 'sp_GetZipByCodes'
AND ROUTINE_TYPE = 'PROCEDURE'
)
DROP PROCEDURE sp_GetZipByCodes
CREATE PROCEDURE [PrdCtlg].[sp_GetZipByCodes] (@dtZip PrdCtlg.ZipType READONLY)
AS
BEGIN
IF EXISTS (SELECT 1 FROM @dtZip)
BEGIN
SELECT
z.pkZipId,
z.ZipCode,
z.fkCityId
FROM prdctlg.zip z
WHERE zipcode IN (SELECT zip FROM @dtZip)
END
END
--Sample value passed to Execute Procedure
DECLARE @dtZip PrdCtlg.ZipType
INSERT INTO @dtZip (ColumnName)
VALUES (1)
INSERT INTO @dtZip (ColumnNAme)
VALUES (1)
EXEC [dbo].[usp_GetZipByCodes] @dtZip = @dtZip
我在我的一个存储过程中使用用户定义的 table 类型发送大量邮政编码。以下是我的存储过程
CREATE Procedure [PrdCtlg].[sp_GetZipByCodes](@dtZip PrdCtlg.ZipType ReadOnly)
as
begin
Select z.pkZipId, z.ZipCode, z.fkCityId from prdctlg.zip z where zipcode in
(select zip from @dtZip )
end
但它returns没什么。任何帮助将不胜感激。
我认为这段代码可能对您有所帮助,我们不应该创建以 "Sp_" 为前缀的存储过程名称, 因为所有系统定义的存储过程都是按照 sql 规范开始的 使用 Like "usp_ProcName"
IF EXISTS
(SELECT 1
FROM INFORMATION_SCHEMA.ROUTINES
WHERE SPECIFIC_NAME = 'sp_GetZipByCodes'
AND ROUTINE_TYPE = 'PROCEDURE'
)
DROP PROCEDURE sp_GetZipByCodes
CREATE PROCEDURE [PrdCtlg].[sp_GetZipByCodes] (@dtZip PrdCtlg.ZipType READONLY)
AS
BEGIN
IF EXISTS (SELECT 1 FROM @dtZip)
BEGIN
SELECT
z.pkZipId,
z.ZipCode,
z.fkCityId
FROM prdctlg.zip z
WHERE zipcode IN (SELECT zip FROM @dtZip)
END
END
--Sample value passed to Execute Procedure
DECLARE @dtZip PrdCtlg.ZipType
INSERT INTO @dtZip (ColumnName)
VALUES (1)
INSERT INTO @dtZip (ColumnNAme)
VALUES (1)
EXEC [dbo].[usp_GetZipByCodes] @dtZip = @dtZip