Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Membuat fungsi yang Ditentukan Pengguna dalam Prosedur Tersimpan di SQL 2005

Secara teknis ... ya Anda bisa tetapi itu tidak berarti Anda harus melakukannya. Anda harus berhati-hati untuk menghindari pernyataan GO (cukup gunakan Exec untuk setiap batch) tetapi Anda dapat melakukan sesuatu seperti:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE dbo.Test
AS

Declare @Sql nvarchar(max)

Set @Sql = 'CREATE FUNCTION dbo.Foo
(   
)
RETURNS TABLE 
AS
RETURN 
(
    SELECT 0 As Bar
)'

Exec(@Sql)

Select * 
From dbo.Foo()


Set @Sql = 'Drop Function dbo.Foo'
Exec(@Sql)

Return
GO
Exec dbo.Test

Yang mengatakan, saya akan sangat menyarankan terhadap solusi semacam ini, terutama jika fungsi yang Anda inginkan adalah sesuatu yang akan berguna seperti fungsi Split. Saya akan merekomendasikan hanya membuat UDF dan menggunakannya dan membiarkannya sampai Anda dapat menggunakannya lagi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat SQL Server untuk menghemat waktu dengan format AM/PM?

  2. Melewati datatable dari C # ke SQL Server 2008

  3. DEGREES() Contoh di SQL Server

  4. cara membagi string dengan spasi di SQL

  5. Batas pada kondisi WHERE col IN (...)